题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。
程序分析:请参照:C 实战练习题目14。
实例:
1 #include<stdio.h> 2 #define N 1000 3 int main() 4 { 5 int i,j,k,n,sum; 6 int a[256]; 7 for(i=2;i<=N;i++) 8 { 9 sum=a[0]=1; 10 k=0; 11 for(j=2;j<=(i/2);j++) 12 { 13 if(i%j==0) 14 { 15 sum+=j; 16 a[++k]=j; 17 } 18 19 } 20 if(i==sum) 21 { 22 printf("%d=%d",i,a[0]); 23 for(n=1;n<=k;n++) 24 printf("+%d",a[n]); 25 printf(" "); 26 } 27 28 } 29 return 0; 30 }
以上实例输出结果为:
6=1+2+3 28=1+2+4+7+14 496=1+2+4+8+16+31+62+124+248
感谢你的阅读,请用心感悟!希望可以帮到爱学习的你!!分享也是一种快乐!!!请接力。。。