c++完全数:输入一个数,判断该数是不是完全数
时间: 2024-09-30 17:06:42 浏览: 42
在C++中,要判断一个整数是否是完全数,首先要知道完全数是指那些所有真因数(除了本身以外的因子)之和等于它本身的正整数。例如,6是一个完全数,因为1 + 2 + 3 = 6。
下面是一个简单的C++函数,用于检查给定的数n是否是完全数:
```cpp
#include <iostream>
using namespace std;
bool isPerfectNumber(int n) {
int sum = 0;
for (int i = 1; i * i <= n; i++) {
if (n % i == 0) {
// 如果i是因子,则将i和n/i都加到sum里(如果n不是偶数,i和n/i会相等)
if (i != n / i)
sum += i + n / i;
else
sum += i; // 只有一个因子的情况
}
}
return sum == n && n > 1; // 验证sum是否等于n,并排除1这个特殊情况
}
int main() {
int num;
cout << "请输入一个整数:";
cin >> num;
if (isPerfectNumber(num))
cout << num << " 是一个完全数。\n";
else
cout << num << " 不是一个完全数。\n";
return 0;
}
```
在这个程序中,用户会被提示输入一个数,然后`isPerfectNumber`函数会检查并打印结果。
阅读全文