立志用最少的代码做最高效的表达


PAT甲级最优题解——>传送门


Among all the factors of a positive integer N, there may exist several consecutive numbers. For example, 630 can be factored as 3×5×6×7, where 5, 6, and 7 are the three consecutive numbers. Now given any positive N, you are supposed to find the maximum number of consecutive factors, and list the smallest sequence of the consecutive factors.

Input Specification:
Each input file contains one test case, which gives the integer N (1<N<2^31).

Output Specification:
For each test case, print in the first line the maximum number of consecutive factors. Then in the second line, print the smallest sequence of the consecutive factors in the format factor[1]*factor[2]*…*factor[k], where the factors are listed in increasing order, and 1 is NOT included.

Sample Input:
630

Sample Output:
3
567


分析:

  • 既然某数能分解为几个数字相乘,则这些数字必定是其因子。
  • 在其因子中, 如果因子大于该数/2,则因子必定不连续,因此不需考虑。所以将范围缩减为sqrt(n)
  • 基于前两点设计算法即可。

#include<bits/stdc++.h>
using namespace std;
int main() {int n; cin >> n;int sqrt_n = sqrt(n);vector<int>m, tmp_v;for(int i = 2; i <= sqrt_n; i++) {int cp_i = i, sum = i;while(n % sum == 0 && cp_i <= sqrt_n) {tmp_v.push_back(cp_i);cp_i++;sum *= cp_i;}if(tmp_v.size() > m.size()) m = tmp_v;tmp_v.clear();}if(m.size() == 0) cout << 1 << '\n' << n;else {cout << m.size();for(int i = 0; i < m.size(); i++) cout << (i==0?"\n":"*") << m[i];}return 0;
}

1096 Consecutive Factors (20 分)_24行代码AC相关推荐

  1. 1092 最好吃的月饼 (20分)_24行代码AC

    立志用最少的代码做最高效的表达 PAT乙级最优题解-->传送门 月饼是久负盛名的中国传统糕点之一,自唐朝以来,已经发展出几百品种. 若想评比出一种"最好吃"的月饼,那势必在吃 ...

  2. 【简便解法】1084 外观数列 (20分)_24行代码AC

    立志用更少的代码做更高效的表达 PAT乙级最优题解-->传送门 外观数列是指具有以下特点的整数序列: d, d1, d111, d113, d11231, d112213111, - 它从不等于 ...

  3. 1081 Rational Sum (20 分)_22行代码AC

    立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 Given N rational numbers in the form numerator/denominator, you a ...

  4. 1096 Consecutive Factors (20 分)【难度: 一般 / 爆搜 数论】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805370650738688 注意测试点1: 72=2*3*3*4 我这里 ...

  5. 【PAT甲级 排序】1096 Consecutive Factors (20 分) C++ 全部AC

    题目 难倒是不难,暴力破解即可.要注意的就是开longlong,以及开方时,不要丢失临界值,还有如果子序列长度为0的话,输出num本身(因为计算的时候不考虑1这个因数). 一开始想出来一种O(n)的算 ...

  6. 1094 谷歌的招聘 (20分)_25行代码AC

    立志用最少的代码做更高效的表达 PAT乙级最优题解-->传送门 2004 年 7 月,谷歌在硅谷的 101 号公路边竖立了一块巨大的广告牌(如下图)用于招聘.内容超级简单,就是一个以 .com ...

  7. 【测试点分析】1067 试密码 (20分)_20行代码AC

    立志用更少的代码做更高效的表达 Pat乙级最优化代码+题解+分析汇总-->传送门 当你试图登录某个系统却忘了密码时,系统一般只会允许你尝试有限多次,当超出允许次数时,账号就会被锁死.本题就请你实 ...

  8. 1073 多选题常见计分法 (20 分)_66行代码AC

    立志用最少的代码做最高效的表达 PAT乙级最优题解-->传送门 批改多选题是比较麻烦的事情,有很多不同的计分方法.有一种最常见的计分方法是:如果考生选择了部分正确选项,并且没有选择任何错误选项, ...

  9. 【简便解法】1077 互评成绩计算 (20分)_32行代码AC

    立志用更少的代码做更高效的表达 Pat乙级最优化代码+题解+分析汇总-->传送门 在浙大的计算机专业课中,经常有互评分组报告这个环节.一个组上台介绍自己的工作,其他组在台下为其表现评分.最后这个 ...

最新文章

  1. 数据结构之【线性表】(顺序表、链表的基本操作实现)
  2. 独家 | 2种数据科学编程中的思维模式,了解一下(附代码)
  3. Chipmunk僵尸物理对象的出现和解决(七)
  4. 资深Android开发带你入门Framework,架构师必备技能
  5. C#中通过代码控制IIS服务重启
  6. VCL组件之TStrings
  7. c# listbox使用
  8. python自动更新国内IP地址合集
  9. 【机器学习】判别模型vs生成模型、概率模型vs非概率模型
  10. 【yolo训练数据集】标注好的垃圾分类数据集共享
  11. 2022年天津专升本报考专业对口限制目录,升本专业课如何备考~
  12. 时间(格林尼治时间/协调世界时/世界时间)
  13. 学习ROS初始遇到的各种问题及解决方法
  14. 此windows不是正版
  15. 深圳中学高考2021成绩查询,2020深圳高中高考数据对比,明年考多少分能上好高中?...
  16. 如何在数据验证单元格区域禁用粘贴
  17. 从应用调用vivi驱动分析v4l2 -- 申请缓存(VIDIOC_REQBUFS)
  18. 大地测量的基准面和基准线
  19. 【Java基础】Debug模式操作流程及案例:不死神兔、百钱百鸡
  20. python判断数字在不在范围内_我的程序在python中完成数字并且不确定我是否应该在范围内使用(1,1000)或(2,n 1)...

热门文章

  1. OkHttp3 HTTP请求执行流程分析
  2. Python中装饰器的理解和实现
  3. Python中数据类型的操作
  4. IDEA中常用快捷键整理及重置快捷键
  5. 消息中间件(Kafka/RabbitMQ)收录集
  6. Java中已经存在了十几年的一个bug...
  7. 如何在 Java 中正确使用 wait, notify 和 notifyAll – 以生产者消费者模型为例
  8. 微软为NBA提供云计算服务、Google公布Fuchsia OS细节、Zoom用户可选择数据库等|Decode the Week...
  9. LiveVideoStack线上分享第三季(十四):FLV封装格式介绍及解析
  10. 如何ALL IN一场技术大会?