文章目录

  • 题目分析
  • 题目链接

题目分析


来源:acwing

题意重述:1个正整数N的因子中可能存在若干连续的数字。比如 N =630 ,N = 3 * 5 * 6 *7,这里连续的因子是5 *6 * 7,长度为3.

思路:枚举起点k;枚举长度k(k+1)(k+2)…
而且约数都是成对出现的,如果d是约数,n/d也是n的约数,这样只需要枚举那个较小的约数,另一个直接可以算出来。较小的约数仅需要枚举到n\sqrt{n}n​. 对应到本题,连续的因子的起点最大枚举到n\sqrt{n}n​。

ac代码

#include<bits/stdc++.h>
using namespace std;int main(){int n;cin >> n;vector<int> res;for(int i= 2; i<= n /i ;i++){//枚举因子if(n % i ==0){//统计连续的因子vector<int> seq;//重新复制一个n:令 m = n,然后枚举连续的因子for(int m = n, j = i ; m% j == 0; j++){seq.push_back(j);m /= j;}if(seq.size() > res.size()) res  = seq;}}//特判一下,没有连续因子,答案不包括1,所以直接输出nif(res.empty()) res.push_back(n);cout << res.size()<<endl;cout<< res[0];for(int i =1; i<res.size(); i++) cout<<"*"<<res[i];
}

题目链接

PAT甲级1096 Consecutive Factors
https://www.acwing.com/problem/content/description/1588/

PAT甲级1096 Consecutive Factors :[C++题解]连续的因子、约数相关推荐

  1. PAT甲级1059 Prime Factors :[C++题解]分解质因子

    文章目录 题目分析 题目链接 题目分析 暴力求质因数 下面i就是质因子,s是质因子i的阶数. 暴力的时间复杂度O(n),会超时 void divide(int n){for(int i=2;i< ...

  2. 1096 Consecutive Factors (20 分)_24行代码AC

    立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 Among all the factors of a positive integer N, there may exist se ...

  3. 1096 Consecutive Factors

    1. 对于题目描述中 list the smallest sequence of the consecutive factors 正确理解是:如果有多组连续因子,输出开头因子最小的那个序列(一开始理解 ...

  4. PAT甲级1029 Median:[C++题解]贪心、二路归并

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: 如果直接排序,时间复杂度是O(nlogn),n=2∗105O(nlogn),\ n=2*10^5O(nlogn), n=2∗105会 ...

  5. PAT甲级1070 Mooncake:[C++题解]贪心

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: 对单件从高到低排序. 需要注意的是总需要量d设成double,不要设成int. ac代码 #include<bits/stdc ...

  6. PAT甲级1008 Elevator:[C++题解]模拟

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析:统计上升次数.下降次数:停留次数就是n.然后算数即可. ac代码 #include<bits/stdc++.h> usin ...

  7. PAT甲级1077 Kuchiguse:[C++题解]字符串、最长公共后缀

    文章目录 题目分析 题目链接 题目分析 来源:acwing 分析: 读入n个字符串s[n],以s[0]为基础找公共后缀.枚举后缀的长度,内层循环遍历其他字符串,判断是否后缀相等. 使用子串的函数sub ...

  8. PAT甲级1078 Hashing:[C++题解]哈希表、哈希表开放寻址法、二次探测法

    文章目录 题目分析 题目链接 题目分析 来源:acwing 分析: 本题建立hash表是利用只具有正增量的二次探测法来解决冲突, 索引 = 数 % 哈希表的大小 如果映射到同一个索引idx,hash表 ...

  9. PAT甲级1003 Emergency:[C++题解]dijkstra求最短路、最短路条数

    文章目录 题目分析 题目链接 题目分析 分析:求单源最短路,使用dijkstra()算法. 最短路的条数,和最短路中 人数最多的一条,输出最多人数. 本题点比较少,使用邻接矩阵d[N][N]来存. a ...

最新文章

  1. 线性表元素的区间删除
  2. 通用电气Predix改革客户运作的三大用途
  3. Deepmind顺练了人工智能14天成为星海2最强玩家
  4. zabbix 监控 tomcat/jvm性能
  5. maven 基本命令
  6. Pentium M处理器架构/微架构/流水线 (2) - 数据预取/乱序核/退役单元
  7. ThreadPoolExecutor执行过程分析
  8. 判断当前浏览器是不是微信浏览器
  9. SQL中的join总结
  10. 强烈推荐 | 百度、阿里、腾讯 40 道面试题超全面总结
  11. dw php获取当前时间,tp5时间戳转日期的方法
  12. c语言乐谱提取软件,SmartScore X2 Pro(乐谱扫描识别软件) V10.5.4 官方版
  13. linux office转换pdf
  14. 科技复原,3000多前年的木乃伊「发声」了
  15. 发布会直播平台哪家好
  16. Cesium变换3DTiles的位置(平移旋转缩放)
  17. 微信域名防封跳转系统的原理,微信域名防封的注意点
  18. cannot have an existing value
  19. 杭州女童遇难之后:父亲见到遗体全身瘫软,奶奶哭着用头猛磕桌子
  20. OpenSSL自建CA和签发二级CA及颁发SSL证书

热门文章

  1. 提取页面共性用抽象类来写页面模板
  2. aapt: error while loading shared libraries: libstdc++.so.6: wrong ELF class: ELFCLASS64
  3. Ubuntu12.04安装配置Theano
  4. [VB] Option Explicit
  5. bat 域 本机管理员密码_Windows域中特殊的用户-计算机对象攻防
  6. 应用化学:从二氯甲烷到四氯化碳
  7. c语言for循环加法,BigDecimal 在for循环中相加注意事项
  8. Linux循环链表删除节点,删除循环单链表开头元素
  9. uboot中的中断macro宏
  10. 【DIY】玩转VFD荧光屏,自制VFD时钟全资料(原理图+源码+PCB)