题目:
一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1,2,3,而6=1+2+3,因此6是“完数”。编程找出1000之内的所有完数,并按下面格式输出其因子:6 its factors are 1,2,3
解:
#include<>
int main()
{
int num = 0;
int i = 0;
int sum = 0;
printf("1000以内的所有完数为:\n");
for (num = 1; num <= 1000; num++) //该循环用来表示1000以内所有的数
{
for (i = 1; i < num; i++) //该循环用来找出每个数的因子
{
if (num%i == 0)
{
sum = sum + i; //求因子和
}
}
if (num == sum) //判断是否为完数
{
printf("%d its factors are ", num);
for (i = 1; i < num; i++) //该循环用来输出因子
{
if (num%i == 0)
{
printf("%d ", i);
}
}
printf("\n");
}
sum = 0; //记得每次循环结束,将sum归0
}
return 0;
}
输出结果为:
1000以内的所有完数为:
6 its factors are 1 2 3
28 its factors are 1 2 4 7 14
496 its factors are 1 2 4 8 16 31 62 124 248
请按任意键继续...