楼主要求的是“完数”吧!
一个数如果恰好等于它的因子之和,这个数就称为“完数”。
就像6的因子是:1、2、3;6=1+2+3;一样!
代码!
main()
{int m,i,j,s;
for(m=6;m<1000;m++)
{s=1;
for(i=2;i<m;i++)
if(m%i==0) s=s+i;
if(m-s==0)
{printf("%5d its fastors are 1 ",m);for(j=2;j<m;j++) if(m%j==0)
printf("%d ",j);printf("\n");}
}
}
或
main()
{int m,i,j,s;
for(m=6;m<1000;m++)
{s=m-1;
for(i=2;i<m;i++)
if(m%i==0) s=s-i;
if(s==0)
{printf("%5d its fastors are 1 ",m);for(j=2;j<m;j++) if(m%j==0)
printf("%d ",j);printf("\n");}
}
}
不过要一个数等于因子相加,又等于因子之和~~~~~~~~~