PAT Team Practice 006
问题描述
一个正整数N的因子中可能存在若干连续的数字。
例如630可以分解为3*5*6*7,其中5、6、7就是3个连续的数字。
给定任一正整数N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。
输入格式
输入在一行中给出一个正整数N(1<N<231)。
输出格式
首先在第1行输出最长连续因子的个数;然后在第2行中按因子1*因子2*···*因子k的格式输出最小的连续因子序列,其中因子按递增顺序输出,1不算在内。
代码程序
#include <stdio.h> #include <math.h> int prime(int n) { for(int i=2; i<=sqrt(n); i++) { if(n%i==0) return 0; } return 1; } int main() { long long n, i, j; scanf("%lld", &n); int start=0, l=0; long long s=1; if(prime(n)) { printf("1\n%d\n", n); } else { for(i=2; i<=sqrt(n); i++) { s=1; for(j=i; s*j<=n; j++) { s=s*j; if(n%s==0&&j-i+1>l) { start=i; l=j-i+1; } } } printf("%d\n", l); for(i=start; i<start+l; i++) { if(i==start) printf("%lld", i); else printf("*%lld", i); } printf("\n"); } return 0; }
执行结果
输入样例
630
输出样例
3 5*6*7
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)