L1-006 连续因子(C语言实现)
参考链接:添加链接描述
#include <stdio.h>
#include <math.h>
int main()
{
int n,i,j,count=0,first=0,maxn,temp;
scanf("%d",&n);
maxn=sqrt(n)+1;
for(i=2; i<=maxn; i++)
{
temp=1;
for(j=i; j<=maxn; j++)
{
temp*=j;//连乘积
if(n%temp!=0)//加入一个因子后变成非连乘积
break;
}
if(j-i > count)
{
count=j-i;//记录连乘积的最大因子个数
first=i;//连成积的第一个因子
}
}
if(first==0)//1和质数
printf("%d\n%d",1,n);
else
{
printf("%d\n",count);
for(i=0; i<count; i++,first++)
i==0?printf("%d",first):printf("*%d",first);
}
return 0;
}