c++ 找出n以内的完数 使用for循环
时间: 2024-11-27 17:23:26 浏览: 17
在 C++ 中,完数是指除了自身以外的所有正因数之和等于该数本身的自然数。例如,6 的正因数有 1、2 和 3,它们的和正好等于 6,所以 6 是一个完数。你可以使用 for 循环来找出指定范围 n 以内的所有完数。以下是基本的步骤:
1. 定义一个函数 `isPerfectNumber` 来检查一个数是否为完数。
2. 使用 for 循环遍历从 1 到 n,对每个数做如下操作:
- 计算它的所有因子(包括 1 和它本身)。
- 检查这些因子之和是否等于原数。
- 如果相等,则返回 true,表示找到了一个完数。
下面是一个简单的示例代码片段:
```cpp
#include <iostream>
using namespace std;
bool isPerfectNumber(int num) {
int sum = 0;
for (int i = 1; i <= num / 2; ++i) {
if (num % i == 0) { // 只考虑小于等于 num/2 的因子
sum += i;
}
}
return sum == num;
}
void findPerfectNumbersWithinRange(int n) {
for (int i = 1; i <= n; ++i) {
if (isPerfectNumber(i)) {
cout << i << " 是一个完数。\n";
}
}
}
int main() {
int n;
cout << "请输入一个整数 n:";
cin >> n;
findPerfectNumbersWithinRange(n);
return 0;
}
```
在这个程序中,用户输入一个值 `n` 后,会打印出该范围内所有的完数。
阅读全文