PTA 连续因子
一个正整数 N 的因子中可能存在若干连续的数字。例如 630 可以分解为 3×5×6×7,其中 5、6、7 就是 3 个连续的数字。给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。
输入格式:
输入在一行中给出一个正整数 N(1)。
输出格式:
首先在第 1 行输出最长连续因子的个数;然后在第 2 行中按 因子1*因子2*……*因子k 的格式输出最小的连续因子序列,其中因子按递增顺序输出,1 不算在内。
输入样例:
630
输出样例:
3
5*6*7
1 #include<stdio.h> 2 #include<math.h> 3 int main() 4 { 5 int n,num,i,count=0,max=0,j,temp,flag=0; 6 scanf("%d",&n); 7 for(i=2;i<=sqrt(n);i++){//因子的范围在(1,sqrt(n)) 8 num=n; 9 count=0; 10 j=i; 11 while(num%j==0){ 12 count++;//记录连续因子个数 13 num/=j; 14 j++; 15 } 16 if(count>max){ 17 max=count; 18 temp=i; 19 } 20 } 21 if(!max){ 22 printf("1\n"); 23 printf("%d",n); 24 }else{ 25 printf("%d\n",max); 26 for(i=0;i<max;i++){ 27 if(!i)printf("%d",temp+i); 28 else printf("*%d",temp+i); 29 } 30 } 31 return 0; 32 }
本文来自博客园,作者:弈星,转载请注明原文链接:https://www.cnblogs.com/8023yyl/p/14598840.html

浙公网安备 33010602011771号