完数是大于等于1、小于自身的所有因子之和与自身相等的数。先求因子之和,再与其比较,相等时再由小到大求各因子依次输出,并在之间用'+'连接起来。举例代码如下:
#include "stdio.h"
int main(int argc,char *argv[]){
int n,m,i,t;
for(n=6;n<=1000;n+=2){
for(m=1,t=n>>1,i=2;i<=t;i++)//求所有因子之和
if(n%i==0)
m+=i;
if(m==n){//因子和与自身比较是否相等
printf("%4d = 1",n);
for(i=2;i<=t;i++)//若相等则再求因子并输出
if(n%i==0)
printf("+%d",i);
printf("\n");
}
}
return 0;
}