一个数如果恰好等于它的因子之和,这个数就称为“完数",例如,6的因子为1.2.3,而6-1+2+3,因此6是“完数”,写函数找出1000之内的所有完数,并输出其因子。
#include <stdio.h>
int main(){
int i,j,k;
printf("1000以内的所有完数:\n");
for(i=1;i<=1000;i++){
int sum=0;
for(j=1;j<=i/2;j++){
if(i%j == 0){
sum += j; // 把所有的因子全部加起来
}
}
if(sum == i){ // 加起来的因子和如果等于i,就是完数
printf("%d its factors are: ", i);
for(k=1;k<=i/2;k++){
if(i%k == 0){
printf("%d, ", k);
}
}
printf("\n");
}
}
return 0;
}
1351

被折叠的 条评论
为什么被折叠?



