C++ 求解 1000 以内的完数

完数是指一个数等于它的因子(除了它本身)之和的数。以下是使用 C++ 编写的程序,用于求解 1000 以内的完数:

#include <iostream>
using namespace std;

int main() {
    for (int num = 2; num <= 1000; num++) {
        int sum = 1;
        for (int i = 2; i <= num / 2; i++) {
            if (num % i == 0) {
                sum += i;
            }
        }
        if (sum == num) {
            cout << num << ' 是一个完数。' << endl;
        }
    }

    return 0;
}

在这个程序中,使用了两层循环。外层循环遍历 2 到 1000 之间的每个数,寻找完数。内层循环计算当前数的因子之和。如果因子之和与当前数相等,则输出当前数为一个完数。

在运行程序后,将会输出以下结果:

6 是一个完数。
28 是一个完数。
496 是一个完数。

这些是 1000 以内的所有完数。需要注意的是,程序中的内层循环只遍历了当前数的一半(num / 2)的范围,是因为一个数的因子不会大于它的一半。同时,根据完数的定义,完数是大于 1 的数,因此循环从 2 开始。

C++求解1000以内的完数

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

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