一、程序分析
一个数如果恰好等于它的因子之和,这个数就称为“完数”。
二:程序源代码示例
#include<stdio.h>
#include<math.h>
#include<windows.h>
int main()
{
int i, j;
printf("1000以内的完数如下表示:\n");
for (i = 2; i<1000; i++)
{
int sum = 0;
for (j = 1; j <= sqrt(i); j++)
{
if ((i%j) == 0)
{
sum = sum + j + (i / j);
}
}
//判断是否为完全数,如果是,则打印其因子
if (i == sum - i)
{
printf("%d为完数\n",i);
printf("%d 的因子: ", i);
for (j = 1; j<i; j++)
{
if (i%j == 0)
printf("%d ", j);
}
printf("\n");
}
}
system("pause");
return 0;
}
三:程序结果示例
这个程序的核心就是找因子,和之前打的分解质因数有异曲同工之妙。