怎么用c++找完全数
时间: 2024-09-25 17:05:48 浏览: 36
通过C++实现查找完全数
5星 · 资源好评率100%
在C++中,找到一个整数是否为完全数(Perfect Number)的一种常见方法是通过检查该数字的所有真因数之和是否等于它本身。一个完全数是指除了自身之外,所有正因子(包括1)的和正好等于其本身的数。以下是简单的步骤:
1. 定义一个函数,接收一个整数作为参数;
2. 使用循环遍历从1到这个整数的平方根(因为一个大于平方根的因子必然有一个对应的小于平方根的因子),对于每个数i,检查它是否能整除输入的数n(即 n % i == 0);
3. 如果可以整除,那么将i和n/i都加入到一个sum中,因为它们是一对因子;
4. 如果i已经是n的因子而没有被添加(例如n = 6, i = 3),则只加i一次,因为n / i 就是1,已经默认包含在内了;
5. 循环结束后,如果sum等于n,那么n就是完全数,否则不是。
下面是一个简单的C++示例:
```cpp
#include <iostream>
#include <cmath>
bool isPerfectNumber(int num) {
if (num <= 1) {
return false;
}
int sum = 1; // 包含1
for (int i = 2; i * i <= num; ++i) {
if (num % i == 0) {
sum += i;
if (i != num / i) { // 如果不是num自身的平方根,则还要加上另一个因子
sum += num / i;
}
}
}
return sum == num;
}
int main() {
int num;
std::cout << "Enter a number to check if it's perfect: ";
std::cin >> num;
if (isPerfectNumber(num)) {
std::cout << num << " is a perfect number.\n";
} else {
std::cout << num << " is not a perfect number.\n";
}
return 0;
}
```
阅读全文