C语言用for语句编写程序找出100以内所有的完数及这些完数的和。 输出的形式为:完数1+完数2+完数3+…=和
时间: 2024-10-21 07:02:38 浏览: 99
在C语言中,完数是指一个正整数除了1和它本身以外,所有因数之和等于该数本身的自然数。例如6是一个完数,因为1+2+3=6。为了找出100以内的所有完数及其和,我们可以创建一个for循环遍历这个范围,并检查每个数是否为完数。以下是简单的C语言代码实现:
```c
#include <stdio.h>
// 完数函数
int isPerfectNumber(int num) {
int sum = 1;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
// 如果i是因子,那么它的平方也是因子,除非它是num的质因数
if (i != num / i)
sum += i + num / i;
else
sum += i; // 只加一次,因为它已经加过一次了
}
}
return sum == num && num > 1; // 检查sum是否等于num且num大于1(排除1)
}
int main() {
int perfectSum = 0;
for (int i = 2; i <= 100; i++) {
if (isPerfectNumber(i)) {
printf("完数%d ", i);
perfectSum += i;
}
}
printf("\n这些完数的和为:%d\n", perfectSum);
return 0;
}
```
在这个代码中,`isPerfectNumber` 函数用于检查一个数是否是完数,而主循环则遍历并打印出100以内的完数,同时累加它们的和。
阅读全文