一个数如果恰好等于它的因子之和,这个数就称为"完数"。 例如,6 的因子为 1 、 2 、 3,而 6=1+2+3,因此 6 是"
程序代码:
为什么出来的结果只有1 #include <stdio.h> int main() { int n,i,j,sum,be[200],k,f; scanf("%d",&n); for(i = 1;i<=n;i++) { k = 0; sum = 0; for(j = 1;j<=i;j++) //循环计算因子 { if(i%j==0) { be[k] = j; //将因子存入数组,备用 sum+=j; //计算因子之和 k++; } } if(sum==i) { printf("%d its factors are",i); //将完数输出 for(f=0;f<k;f++) printf(" %d",be[f]); printf("\n"); } } return 0; }