#include<stdio.h> void main() { int i,j,t,s=0; for(i=2;i<=1000;i++) { s = 0; // 对每个数字 s 都要清零 for(j=1;j<i;j++) { t=i%j; if(t==0) { s=s+j; } } if(i==s) // 这个 if 放在内层循环外面,不然同一个完数会被输出很多次 printf("%d ",i); } getchar(); }
// 下面的代码求不到阶乘 n=n+1; for(i=1;i<=n;i++) { n=n*i; } // 求 e 向下面这样就行了 float e = 2,t, n = 2; for (t = 1.0 / 2.0; t > 0.00001; t /= n) { s += t; n++; }