#include <stdio.h>
#include <stdlib.h>
int main()
{
int N,i,n,s;
scanf("%d",&N);
for(n=2;n<=N;n=n+1)
{
s=0;
for(i=1;i<=n;i=i+1)
{if(n%i==0)
{s=s+i;}
}
if(s==n)
{printf("%d its factors are 1 ",n);}
for(i=1;i<=n;i=i+1)
{
if(n%i==0)
{printf("%d ",i);}
printf("\n");
}
}
return 0;
}
修改如下,供参考对照:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int N, i, n, s;
scanf("%d", &N);
for (n = 2; n <= N; n = n + 1)
{
s = 0;
for (i = 1; i <= n/2; i = i + 1)//修改
{
if (n % i == 0)
{
s = s + i;
}
}
if (s == n)
{
printf("%d its factors are:1 ", n);
for (i = 2; i <= n/2; i = i + 1)
{
if (n % i == 0)
{
printf("%d ", i);
}
}
printf("\n");
}
}
return 0;
}