21xrx.com
2024-09-20 00:56:03 Friday
登录
文章检索 我的文章 写文章
如何在C++中求完数?
2023-06-29 06:30:41 深夜i     --     --
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。

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

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复