一个数如果恰好等于它的因子之和,这个数就被称为“完数”。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。找出1000之内的所有完数,并输出。
输出描述:
每一个完数一行。在每一行中,首先输出这个完数的值,再输出一个冒号,之后从小到大输出这个完数的所有因子,在每个因子前输出一个空格。
请注意行尾输出换行。
#include<stdio.h>
void main()
{
int i,j,k;
for(i=1;i<1000;i++){
int temp = i;
int sum = 0;
for(j=1;j<=i/2;j++){
if(temp%j == 0){
sum += j;
}
}
if(temp == sum){
printf("%d: ",temp);
for(j=1;j<=i/2;j++){
if(temp%j == 0){
printf("%d ",j);
}
}
printf("\n");
}
}
}