用c语言的for语句求取100以内的完数以及他们的和
时间: 2024-12-08 14:24:02 浏览: 6
c语言-判断完数.docx
在C语言中,我们可以使用for循环结构来遍历1到100之间的所有整数,同时检查每个数字是否是完数(也称为完美数,即其所有正因子(除了自身)之和等于该数本身)。然后将所有的完数相加得到它们的总和。以下是简单的步骤:
```c
#include <stdio.h>
int isPerfectNumber(int num) {
int sum = 0;
for (int i = 1; i * i <= num; i++) {
if (num % i == 0) {
// 如果i是因子,则考虑它和它的平方根也是因子
sum += i;
if (i != num / i) { // 如果不是num本身
sum += num / i;
}
}
}
return sum == num; // 如果sum等于num,那么num就是完数
}
int main() {
int perfectSum = 0;
for (int i = 1; i <= 100; i++) {
if (isPerfectNumber(i)) {
printf("%d 是一个完数。\n", i);
perfectSum += i;
}
}
printf("100以内的完数之和为:%d\n", perfectSum);
return 0;
}
```
在这个程序中,`isPerfectNumber`函数用于检查一个数是否是完数,而主循环则逐个检查并累加那些发现的完数。
阅读全文