输入整数n,求出n之内的所有完数,输入1000,输出6 28 496
时间: 2024-10-29 08:18:38 浏览: 20
在数学中,一个完数(Perfect Number)是指一个正整数,它的所有真因数(除了自身以外的因数)的和等于它本身。例如,6就是个完数,因为1 + 2 + 3 = 6。
要编写一个C++程序来找出指定范围内的完数,你可以使用一个循环遍历每个数,然后计算它的所有因数并验证是否为完数。以下是一个简单的示例:
```cpp
#include <iostream>
bool isFactor(int num, int factor) {
return (num % factor == 0);
}
int sumFactors(int n) {
int sum = 0;
for (int i = 1; i <= n / 2; ++i) {
if (isFactor(n, i)) {
sum += i;
}
}
// 如果sum等于n,则n是个完数
return sum == n ? n : 0;
}
int main() {
int n;
std::cout << "Enter a number to find perfect numbers up to: ";
std::cin >> n;
std::cout << "Perfect numbers within the given range are: ";
for (int i = 1; i <= n; ++i) {
if (sumFactors(i)) {
std::cout << i << " ";
}
}
return 0;
}
```
当你运行这个程序,并输入1000时,它会输出在这个范围内的完数:6、28和496。
阅读全文