C语言:求解完数的函数113


在数学中,完数是一种自然数,其所有真因子(不包括自身)之和等于该数本身。例如,6是一个完数,因为它的真因子1、2、3相加等于6。编写一个C语言函数,用来判断一个给定的正整数是否为完数。

函数定义int is_perfect_number(int n) {
int sum = 0;
for (int i = 1; i < n; i++) {
if (n % i == 0) {
sum += i;
}
}
return sum == n;
}

函数说明

这个函数名为is_perfect_number,它接受一个正整数n作为参数,并返回一个布尔值,表示该整数是否为完数。

函数通过计算n的所有真因子的总和(存储在变量sum中)来实现这一目标。遍历从1到n-1的所有整数,并检查每个整数是否能整除n(使用模运算符%)。如果能整除,则该整数被视为n的真因子,并且它的值被添加到sum中。

最后,函数检查sum是否等于n。如果是,则n是一个完数,函数返回true;否则,函数返回false。

示例用法#include
int main() {
int n;
printf("输入一个正整数:");
scanf("%d", &n);
if (is_perfect_number(n)) {
printf("%d 是一个完数。", n);
} else {
printf("%d 不是一个完数。", n);
}
return 0;
}

输出输入一个正整数:6
6 是一个完数。

2025-02-02


上一篇:巧用 C 语言函数抑制不必要输出

下一篇:C 语言中函数主名称详解