求出2~1000中所有的完数
程序代码:
# include <stdio.h> int main(void) { int i, j, k, t, count=0; printf("2-1000的所有完数如下: "); for(i=2; i<=1000; i++) { t = 0; for(j=1; j<i; j++) { if(i%j == 0) t+=j; //标记行; } if(t == i) //求出完数并输出该完数及其所有真因子; { count++; printf("第%d个完数为:%d,其真因子为:", count, i); for(j=1; j<i; j++) if(t%j == 0) printf("%-5d", j); printf(" "); } } return 0; } /* 总结:所谓真因子就是一个正整数除了它本身之外的约数; 在VC++6.0中的执行结果如下: ------------------------------------- 2-1000的所有完数如下: 第1个完数为:6,其真因子为:1 2 3 第2个完数为:28,其真因子为:1 2 4 7 14 第3个完数为:496,其真因子为:1 2 4 8 16 31 62 124 248 ------------------------------------- */