C++求解1000以内的完数
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 开始。
原文地址: https://www.cveoy.top/t/topic/g3T 著作权归作者所有。请勿转载和采集!