第1个回答 2010-04-14
#include<stdio.h>
void main()
{
int k[10];
int i,j,n,s;
for(j=2;j<=1000;j++)
{
n=-1;
s=j;
for(i=1;i<j;i++)
{
if((j%i)==0)
{
n++;
s=s-i;
k[n]=i;/*将每个因子赋给k0,k1...k9*/
}
}
if(s==0)
{
printf("%d是一个完数,它的因子是:",j);
for(i=0;i<n;i++)
printf("%d,",k[i]);
printf("%d\n",k[n]);
}
}
}
第2个回答 推荐于2017-10-04
/*1-1000之间的完数*/
#include<stdio.h>
#define MAX 1000
void main()
{
int i, Num, j;
for(Num = 1; Num <= MAX; Num++)
{
i=0;
for(j = 1; j < Num; j++)
if ((Num % j) == 0)
i = i + j;
if(Num == i)
printf("%d\n",Num);
}
}本回答被提问者采纳
第3个回答 2019-05-11
/*1-1000之间的完数*/
#include<stdio.h>
#define
MAX
1000
void
main()
{
int
i,
Num,
j;
for(Num
=
1;
Num
<=
MAX;
Num++)
{
i=0;
for(j
=
1;
j
<
Num;
j++)
if
((Num
%
j)
==
0)
i
=
i
+
j;
if(Num
==
i)
printf("%d\n",Num);
}
}