完数的含义:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如 6=1+2+3,
编程判断一个整数是不是完数。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int i, j, sum; // i 是要判断的数, j 是因子, sum 是因子之和
scanf("%d", &i);
sum = 1;
for (j = 2; j <= i / 2; j++)
// 判断 i 能否被 j 整除, 能的话,j 就是因子,因子不包括自身
if (i % j == 0)
sum += j;
if (sum == i) // 判断此数是不是等于因子之和
{
printf("%d its factors are 1, ", i); // 输出该数
for (j = 2; j <= i / 2; j++)
if (i % j == 0)
printf("%d, ", j); // 输出因子
printf("\n");
}
else
{
printf("%d its not perface number",i);
}
return;
}
运行结果如下: