21xrx.com
2025-04-17 13:34:31 Thursday
文章检索 我的文章 写文章
如何在C++中求完数?
2023-06-29 06:30:41 深夜i     15     0
C++ 完数 求解

完数(Perfect Number)是指一个数等于其除数之和的数,例如6就是一个完数,因为:

6=1+2+3

而7不是完数,因为7除了1以外没有其它因子。

下面让我们来介绍一下在C++中如何求完数。

首先,我们需要明确的是,完数必须是正整数,因此我们需要从1开始逐一判断每一个正整数。对于每个正整数,我们需要求出它的因子,并且累加这些因子的和。如果判断出这个和等于该正整数本身,那么这个正整数就是完数。

下面是一段示例代码:

#include <iostream>
using namespace std;
int main() {
  for (int i = 1; i <= 10000; i++) { // 从1到10000逐一进行判断
    int sum = 0// 用于累加因子的和
    for (int j = 1; j < i; j++) {
      if (i % j == 0) {
        sum += j;
      }
    }
    if (sum == i)  // 判断当前正整数是否为完数
      cout << i << endl;
    
  }
  return 0;
}

在这段代码中,我们使用了两层for循环。外层循环用于从1到10000逐一判断每一个正整数。内层循环计算当前正整数的因子,并将它们的和累加到sum中。最后,我们在外层循环中判断sum是否等于当前正整数i本身,如果是,则输出i。

需要注意的是,在计算因子和的时候,我们只需要计算从1到i-1(不包括i本身)的数,因为i除以i本身得到的结果肯定是1,不需要计算。同时,除以0会导致运行错误,因此循环变量j的初始值必须为1。

总的来说,求完数的方法很简单,只需要逐一判断每一个正整数,并计算其因子的和即可。这是一段比较好理解的代码,也是适合初学者练习的代码。

  
  

评论区

请求出错了