#include <stdio.h>
main(){
int count = 0;//计数器
int counter = 0;//记录完数个数
int x,y;
for(x=2;x<1001;x++){
int sum = 0;
for(y=1;y<x;y++){
if(x%y==0){
sum+=y;
}
}
//判断完数并输出
if(sum==x) {
printf("%d\t",x);
count++;//记录每行的完数
counter++;
if(count==5){
printf("\n");
count = 0;//重新计数
}
}
}
printf("共计%d个完数",counter);
return 0;
}
一个数如恰好等于它的因子之和,这个数就称为“完数”。编程序找出1000以内的所有完数,并输出其因子(6是一个"完数",它的因子是1,2,3)。
#include <stdio.h>
main(){
int x,y;
for(x=2;x<1001;x++){
int sum=0;
for(y=1;y<x;y++){
if(x%y==0){
sum+=y;
}
}
if(sum==x){
printf("%d\n",x);
for(y=1;y<x;y++){
if(x%y==0){
printf("%d\t",y);
}
}
printf("\n");
}
}
return 0;
}