用c语言求100以内所有完数因子的和
时间: 2024-12-02 20:21:51 浏览: 27
在C语言中,我们可以编写一个程序来找出100以内所有的完全数(Perfect Number),以及它们所有因子之和。完全数是指其所有真因数(除了本身外的因子)加起来等于它本身的数。例如,6是一个完全数,因为它有1、2、3这三个因子,它们的和正好等于6。
下面是一个简单的示例代码:
```c
#include <stdio.h>
// 函数定义:检查num是否为完全数,并计算并返回所有因子之和
int sum_of_factors(int num) {
int factor_sum = 0;
for (int i = 1; i <= num / 2; ++i) {
if (num % i == 0) { // 如果i是num的因子
factor_sum += i; // 将因子加入总和
}
}
return factor_sum == num ? num : 0; // 检查sum是否等于num,如果是则返回num
}
int main() {
int limit = 100;
for (int num = 1; num < limit; ++num) {
if (sum_of_factors(num) == num) { // 如果找到完全数
printf("%d 是一个完全数,它的所有因子之和为 %d\n", num, sum_of_factors(num));
}
}
return 0;
}
```
运行这个程序,它会打印出100以内所有的完全数及其因子之和。
阅读全文