完数,顾名思义,就是一个数如果恰好等于它的因子之和。例如6=1+2+3.编写找出1000以内的所有完数
#include <stdio.h>
#include <stdlib.h> int main()
{
int k[];
int i,j,ws,n;
for(j=;j<;j++)
{
ws=j;
n=-;
for(i=;i<j;i++)
{
if(j%i==)
{
n++;
ws-=i; //判断该数的因子,然后减去
k[n]=i; //保存该数的所有因子
}
}
if(ws==) //该数减去它的所有因子,判断是否为0
{
printf("%d is a wanshu.\n",j);
//打印完数的所有因子
for(i=;i<n;i++)
{
printf("%d,",k[i]);
}
printf("%d\n",k[n]);
}
}
return ;
}