#include #include using namespace std;

// 判断一个数是否是完美数 bool isPerfect(int num) { int sum = 1; // 1是所有数的真约数,因此先加上1 for (int i = 2; i * i <= num; i++) { if (num % i == 0) { sum += i; if (i * i != num) { sum += num / i; } } } if (sum == num) { return true; } else { return false; } }

int main() { int m, n; cin >> m >> n;

vector<int> perfectNums;
// 遍历范围内的每个数,判断是否是完美数
for (int i = m; i <= n; i++) {
    if (isPerfect(i)) {
        perfectNums.push_back(i);
    }
}

// 输出完美数
for (int i = 0; i < perfectNums.size(); i++) {
    cout << perfectNums[i] << ' ';
}
cout << endl;

return 0;

}

C++ 完美数查找算法:高效代码实现及优化

原文地址: https://www.cveoy.top/t/topic/qBkv 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录