一个完数的题,谁能写一个代码,并注释一下,谢谢啦
题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。intput:N
output:
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
2016-12-12 08:49
程序代码:#include<stdio.h>
int fun(int n,int a[])//n为所求数据
{
int i=2,k=1,j=1;//i从2开始//k为求和//j为记录数组下标
if (n==1)//考虑特殊情况
return 0;
for (;i<=n/2;i++)//比较到n/2就行了~
if (n%i==0)
{
k+=i;//求和
a[j++]=i;// 保存数据
}
return k;
}
int main()
{
int n,a[1000]={0};//保存完数的数组
a[0]=1;
scanf("%d",&n);//输入数据
if (n==fun(n,a))//
{
printf("Yes,its factors are:\n");
for (n=0;a[n];++n)
printf("%d ",a[n]);
}
else
printf("No");
printf("\n");
return 0;
}

2016-12-18 04:44