L1-006 连续因子

news2024/9/23 1:25:19

一个正整数 N 的因子中可能存在若干连续的数字。例如 630 可以分解为 3×5×6×7,其中 5、6、7 就是 3 个连续的数字。给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。

输入格式:

输入在一行中给出一个正整数 N(1<N<231)。

输出格式:

首先在第 1 行输出最长连续因子的个数;然后在第 2 行中按 因子1*因子2*……*因子k 的格式输出最小的连续因子序列,其中因子按递增顺序输出,1 不算在内。

输入样例:

630

输出样例:

3
5*6*7

L1-006 连续因子_星河欲转。的博客-CSDN博客

//真的是服了这个老六,以前做这道题刚开始是满分,后面增加了一个测试点之后变成19,好不容易找到了那个测试点,现在测试点又进行了改变,变成了超时。

//本人的代码相对之前没有太大变化,只是题目测试点有所改动,但是从题意上来说,本人这个更易理解。

我们要求的是最长的连续因子,记住,最长and连续and因子,同长的话取最小,不过这个不用考虑,因为我们就是从小到大开始的,x作用为记录我们所求连续因子的第一个,d记录长度,方便后面进行长度比较,a来记录连续因子乘积。

代码解析:我们令x=n,如果d等于0,输出1和n(也就是x),然后我们寻找能被n的因子,又从该因子开始,进行累乘,如果累乘结果不是n的因子或者超过了n,那么跳出这层循环,接着判断,从刚才跳出的位置减去开始的位置的这个长度是否大于之前的长度,大于则替换长度d值和起始因子x,如果d不为0,那就输出d和x,又从x的下一个位置输出,直到长度满足d。

第二个循环目的就是取连续因子,从前面第一个循环判断是因子那个位置开始进行连乘,再继续判断这个结果又是否是n的因子,然后又不断判断更新d和x。

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,x,i,j,d=0,a=1;
    cin>>n;
    x=n;
    for(i=2;i<=n/2;i++){
        if(n%i)continue;
        a=1;
        for(j=i;j<=n/2;j++){
            a*=j;
            if(n%a||a>n)break;
        }
        if(j-i>d){
            d=j-i;
            x=i;
        }
    }
    if(d==0)cout<<"1\n"<<x;
    else cout<<d<<endl<<x;
    for(i=x+1;i<x+d;i++)cout<<"*"<<i;
    return 0;
}

 //下面是学弟的满分代码,主要区别在于第二个循环.

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n;

    cin >> n;

    int ans1 = 0, ans2;

    for (int i = 2; i <= sqrt(n); i ++){
        int temp = n;
        int x = i;
        int len = 0;
        while (temp % x == 0 and temp != 0){
            len ++;
            temp /= x;
            x ++;
        }
        if (len > ans1){
            ans1 = len;
            ans2 = i;
        }
    }

    if (ans1 == 0){
        cout << 1 << endl << n << endl;
    }else {
        int o = 0;
        cout << ans1 << endl;
        for (int i = ans2; i < ans2 + ans1; i ++){
            if (o ++) cout << '*';
            cout << i;
        }
    }
    
    return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/181864.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python爬虫(1)一次性搞定Selenium(新版)8种find_element元素定位方式

selenium中有8种不错的元素定位方式&#xff0c;每个方式和应用场景都不一样&#xff0c;需要根据自己的使用情况来进行修改 这里写目录标题1.id定位2.CSS定位3.XPATH定位4.name定位5.class_name定位6.Link_Text定位7.PARTIAL_LINK_TEXT定位8.TAG_NAME定位总结目前selenium已经…

力扣SQL刷题

目录标题571. 给定数字的频率查询中位数574. 当选者608. 树节点612. 平面上的最近距离619. 只出现一次的最大数字571. 给定数字的频率查询中位数 题型&#xff1a;给出数值和对应频率&#xff0c;返回中位数 解答&#xff1a;分别升序和降序排列。中位数正序和倒序所处的位置都…

人工智能图片素材高清,机器人图片卡通 素材

1、做一个人工智能的ppt需要哪些素材 不能理解你的问题。ppt仅仅是一个做幻灯的软件&#xff0c;可以插入图片、动画、音乐、过场等幻灯的功能&#xff0c;还谈不上有人工智能的能力。人工智能需要有更为强大的类似人脑思维的能力&#xff0c;简单的说人工智能是可以思考的机器…

【HBase——陌陌海量存储案例】2. HBase表结构设计(中)

前言 本文是陌陌海量存储案例——HBase表结构设计&#xff08;中&#xff09;&#xff0c;介绍ROWKEY设计原则、项目初始化。 4.5 ROWKEY设计原则 4.5.1 HBase官方的设计原则 避免使用递增行键/时序数据 如果ROWKEY设计的都是按照顺序递增&#xff08;例如&#xff1a;时间…

信息论复习—差错控制编码

目录 差错控制编码的基本概念&#xff1a; 差错控制编码的主要类型和方式&#xff1a; 差错控制编码的主要类型&#xff1a; 差错控制方式&#xff1a; 简单的差错控制方法&#xff1a; 奇偶校验码&#xff1a; 重复码&#xff1a; 信道编码的基本概念和定理*: 信道编…

4 反向传播

文章目录问题提出计算图中的神经网络改进&#xff08;激活函数&#xff09;反向传播前馈计算反向传播pytorch当中的前馈与反馈Tensor张量课程代码课后作业课程来源&#xff1a; 链接课程内容部分来源&#xff08;觉得归纳的非常好的&#xff09;&#xff1a; 链接以及&#xff…

MySQL中的运算符

目录 一.运算符 简介 算术运算符 比较运算法 逻辑运算符 位运算符 实例演示 一.运算符 简介 数据库中的表结构确立后&#xff0c;表中的数据代表的意义就已经确定。通过MySQL运算符进行运算&#xff0c;就可以获取到表结构以外的另一种数据。 例如&#xff0c;学生表中…

[数据结构笔记]二叉树初阶

基本知识 树 -节点的度&#xff1a;一个节点含有的子树的个数称为该节点的度&#xff1b; -叶节点或终端节点&#xff1a;度为0的节点称为叶节点&#xff1b; -非终端节点或分支节点&#xff1a;度不为0的节点&#xff1b; -父节点&#xff1a;若一个节点含有子节点&#xff…

Mybatis 通过接口实现 sql 执行原理解析

使用过 mybatis 框架的小伙伴们都知道&#xff0c;mybatis 是个半 orm 框架&#xff0c;通过写 mapper 接口就能自动实现数据库的增删改查&#xff0c;但是对其中的原理一知半解&#xff0c;接下来就让我们深入框架的底层一探究竟1、环境搭建首先引入 mybatis 的依赖&#xff0…

Consul服务注册与发现

目录 一、Consul简介 &#xff08;一&#xff09;官网 &#xff08;二&#xff09;特点 二、安装并运行Consul &#xff08;一&#xff09;官网安装说明 &#xff08;二&#xff09;下载 &#xff08;三&#xff09;使用开发模式启动 三、服务提供者 四、服务消费者 …

怎么压缩pdf文件?选对方法其实很简单!

相信许多人在使用设备的时候都会面对这样一个问题&#xff0c;那就是设备内存不足。仿佛不管我们多么努力的节省空间&#xff0c;总是会到头来遇到储存空间不足得难题&#xff0c;尤其是一些比较大的pdf文件&#xff0c;特别占据我们的设备内存&#xff0c;那么你知道怎么压缩p…

0128 Web API基本认知

作用使用JS去操作html和浏览器分类DOM&#xff08;文档对象模型&#xff09;BOM&#xff08;浏览器对象模型&#xff09;DOM是什么&#xff1a;Document Object Model-----文档对象模型&#xff0c;用来呈现以及与任意HTML或XML文档交互的API&#xff0c;浏览器提供的一套专门用…

【Linux】一文掌握Linux权限

环境&#xff1a;centos7&#xff0c;腾讯云服务器Linux文章都放在了专栏&#xff1a;【Linux】欢迎支持订阅&#x1f339;前言权限 一词相信大家都不陌生&#xff0c;与我们的生活密切相关。小区里的门禁制度、公司里的管理制度、学校里的校规规定、甚至是社交平台上的一些设置…

python 手机相机传感器信息计算

传感器信息计算 输入传感器尺寸以上已红米12pro为例 输入传感器尺寸 1/1.4英寸 0.7142857 输入像素2亿 200000000 得到以下结果 和宣传中的传感器信息一致 附源码 import sympyclass CMosInfo(object):"""传感器信息计算"""def __init__(…

C 程序设计教程(19)—— 数组和指针(二):字符数组与字符串

C 程序设计教程&#xff08;19&#xff09;—— 数组和指针&#xff08;二&#xff09;&#xff1a;字符数组与字符串 该专栏主要介绍 C 语言的基本语法&#xff0c;作为《程序设计语言》课程的课件与参考资料&#xff0c;用于《程序设计语言》课程的教学&#xff0c;供入门级用…

word实用操作:几个关于录入和排版的小妙招

对于职场人来说&#xff0c;工作中使用Word早已成了习惯。而如何提高Word的技术&#xff0c;那简直是职场人一生都需要研究探索的课题。因此&#xff0c;今天小编将为大家分享几个实用的Word小技巧&#xff0c;这些技巧貌似不起眼&#xff0c;但是学会后&#xff0c;可以大大提…

如何查linux服务器的带宽占用?哪些进程占用带宽?

前言操作系统&#xff1a; Linux操作环境&#xff1a; Centos7 / ubuntulinux查看服务器带宽具体方法   一、使用speedtest-cli命令查看下载和上传最大流量值因为命令是python的&#xff0c;所以需要先下载一个python&#xff0c;用pip下载次命令&#xff1b;123yum -y insta…

七个 Vue 项目用得上的 JavaScript 库分享

文章目录前言一、vueuse二、vue-js-modal三、vue-wait四、good-table五、vue-notification六、tree select七、egjs-infinite grid总结前言 借助开源库加速 Vue 项目的开发进度是现代前端开发比较常见的方式&#xff0c;平常收集一些 JavaScript 库介绍&#xff0c;在遇到需要的…

上古神兵,先天至宝,Win11平台安装和配置NeoVim0.8.2编辑器搭建Python3开发环境(2023最新攻略)

毫无疑问&#xff0c;我们生活在编辑器的最好年代&#xff0c;Vim是仅在Vi之下的神级编辑器&#xff0c;而脱胎于Vim的NeoVim则是这个时代最好的编辑器&#xff0c;没有之一。异步支持、更好的内存管理、更快的渲染速度、更多的编辑命令&#xff0c;是大神Thiago de Arruda对开…

第九层(5):STL之stack

文章目录前情回顾stack概念stack容器需要注意的地方stack类内的构造函数stack类内的赋值操作stack类内的插入stack类内的删除stack类内的访问stack类内的大小操作下一座石碑&#x1f389;welcome&#x1f389; ✒️博主介绍&#xff1a;一名大一的智能制造专业学生&#xff0c;…