(c++)编写程序,判断给定的自然数是完数。
时间: 2024-09-10 14:16:32 浏览: 71
在 C++ 中,判断一个自然数是否为完数,我们需要遍历该数的所有因数并加起来,如果和等于原数本身,那么这个数就是完数。下面是一个简单的函数示例:
```cpp
#include <iostream>
using namespace std;
bool isPerfectNumber(int num) {
if (num <= 1) {
return false; // 自然数必须大于1
}
int sum = 0;
for (int i = 1; i * i <= num; i++) {
if (num % i == 0) { // 检查i是num的因子
sum += i; // 如果是,则加入和
if (i != num / i) { // 如果i不是num除以i的结果,说明还有另一个因子
sum += num / i;
}
}
}
return sum == num; // 判断和是否等于原数
}
int main() {
int number;
cout << "请输入一个自然数: ";
cin >> number;
if (isPerfectNumber(number)) {
cout << number << " 是一个完数." << endl;
} else {
cout << number << " 不是完数." << endl;
}
return 0;
}
```
在这个程序中,用户输入一个数字,然后`isPerfectNumber`函数检查它是否是完数,并在控制台上给出结果。
阅读全文