1129. 区间内的完全数 c语言
时间: 2024-10-29 10:04:54 浏览: 47
区间内的完全数是指能够表示为其所有正因数(包括1和自身)之和的正整数。在C语言中,你可以编写一个函数来检查某个范围内的每个数字是否是完全数,并找出所有的完全数。
以下是一个简单的示例程序:
```c
#include <stdio.h>
#include <stdbool.h>
bool isPerfectNumber(int num) {
int sum = 1; // 因数初始加1,因为1也是它的因数
for (int i = 2; i * i <= num; i++) { // 遍历到num的平方根即可
if (num % i == 0) {
sum += i;
if (i != num / i) { // 如果不是num本身的平方,则再加另一个因数
sum += num / i;
}
}
}
return sum == num && num > 1; // 检查sum是否等于num,排除1这个特例
}
void findPerfectNumbersInInterval(int start, int end) {
printf("完美数在区间 [%d, %d] 内有:\n", start, end);
for (int i = start; i <= end; i++) {
if (isPerfectNumber(i)) {
printf("%d ", i); // 打印找到的完美数
}
}
}
int main() {
int intervalStart = 100; // 示例区间
int intervalEnd = 500; // 示例区间结束
findPerfectNumbersInInterval(intervalStart, intervalEnd);
return 0;
}
```
在这个程序中,`isPerfectNumber` 函数会检查一个给定的整数是否是完全数,而 `findPerfectNumbersInInterval` 函数则遍历指定的区间并打印出所有的完全数。
阅读全文