团体——L1-006 连续因子 (C语言)
程序员文章站
2022-06-10 19:07:49
...
#include<stdio.h>
#include<math.h>
int isPrime(int n)
{
int i;
for (i=2;i<=sqrt(n)+1;i++)//重点:sqrt(n)+1
{
if (n%i==0)
return 0;
}
return 1;
}
int main()
{
int i,n,s,maxs=0,maxl=0,j;
scanf("%d",&n);
if (isPrime(n))
{
printf("1\n");
printf("%d\n",n);
return 0;
}//若为素数则不符合题意
for(i=2;i<=sqrt(n)+1;i++)
{
if(n%i==0)
{
s=i;
for(j=i+1;j<=sqrt(n)+1;j++)
{
s*=j;
if(n%s!=0)
break;
}//判断因子是否连续 ,若不连续则寻找下一个
if(maxs<j-i)//判断j-i>0,说明有连续
{
maxs=j-i;//给maxs赋值,继续循环找出最长的
maxl=i;
}
}
}
printf("%d\n",maxs);
for(i=maxl;i<=maxs+maxl-1;i++)
{
if(i!=maxl)
printf("*");
printf("%d",i);
}
return 0;
}
上一篇: php中堆栈调试