输入一个整数,输出其最长连续因子。例如输入:60输出:2 3 4 5 6 注意:1不算因子
输入描述:
输入一个整数N,N<=10000。
输出描述:
输出其最长连续因子,如果有多个最长,输出最小的那个。
#include <stdio.h>
int main(){
int num;
scanf("%d",&num);
int a[5000]={0};
int j=0;
for(int i=2;i<num/2;i++)
{
if(num%i==0)
{
a[j]=i;
j++;
}
}
int pos=0,count=0,flag=0;
int max=0,rpos=0;
for(int i=0;a[i]!=0;i++)
{
pos=i;
count++;
if(a[i]+1!=a[i+1])
{
flag=1;
}
if(flag==1)
{
if(max<count)
{max=count;
rpos=pos;
}
flag=0;
count=0;
}
}
for(int i=0;i<max;i++)
{
printf("%d ",a[rpos-max+1]);
rpos++;
}
}
运行结果: