输出100-2000之间的完全数
思路
- 完全数=除本身外各因子的和;例 6=1+2+3;
- 第一个完全数是6,第二个完全数是28,第三个完全数是496,后面的完全数还有8128、33550336等等。
代码实现
intmain() { intj,i,s,count=0; for(i=100;i<=2000;i++){ s=1; //每次循环s需要重新赋值,否则s会一直累加for(j=2;j<i;j++){ if(i%j==0) s=s+j; } if(s==i){ printf("s:%d i:%d\n",s,i); count++; } } printf("完全数的个数:%d",count); }
运行结果