|
程序要求:完数,即完美数,一个数字如果恰好等于除它本身之外的因子之和,例如:6=1+2+3。求出1~100之间的所有完数,并打印出该数的因数。 程序如下: #include <stdio.h> #include <stdlib.h> int main() { int i; for(i=0;i<100;i++) wanshu(i); return 0; } int wanshu(int i) { int j; int k=0; int sum=0; int f[100]; for(k=0;k<100;k++) f[k]=0; for(j=1;j<i;j++) { if(i%j==0) { f[k]=j; sum+=j; k++; } } if(sum==i) { printf("%d 是完数\n",i); printf("它的因数为:\n"); for(k=0;k<100;k++) { if(f[k]!=0) printf("%d\n",f[k]); } } else sum=0; } |