输出1000之内的全部“完数”,要求每行输出5个,并统计完数的个数。一个数如果恰好等于它的因子之和,就称其为完数。
#include "stdio.h"
int main(int argc,char *argv[]){
int n,m,k,i,s,t;
for(s=k=0,n=4;n<1000;n++){
for(m=1,t=n/2,i=2;i<=t;i++)
if(n%i==0)
m+=i;
if(m==n){
printf(++k%5 ? "%d " : "%d\n",n);
s++;
}
}
if(k%5)
printf("\n");
printf("A total of %d.\n",s);
return 0;
}
不用管每行5个的问题
一万以内的完数一共只有4个