找因子的方法就是把这个数从1除到这个数自身的一半,余数为0的除数就是因子。比如10,让10从1除到5即可,余数为0的除数都是10的因子,比如1,2,5.
样例输入
1000
样例输出
6 its factors are 1 2 3
28 its factors are 1 2 4 7 14
496 its factors are 1 2 4 8 16 31 62 124 248
不建议用数组,不知道N多大,因子有多少,容易有空间浪费,或者出现数组越界。判断是因子后,直接输出就好。最后面允许有空格。
#include<stdio.h>
int main()
{
int N,i,sum,j,k,r;
scanf("%d",&N);
for(i=1;i<=N;++i)
{
sum=0;
k=i/2;
for(j=1;j<=k;++j)
{
r=i%j;
if(r==0)
sum+=j;
}
if(sum==i)
{
printf("%d its factors are ",i);
for(j=1;j<=k;++j)
{
r=i%j;
if(r==0)
printf("%d ",j);
}
printf("\n");
}
}
return(1);
}