21xrx.com
2024-11-22 07:16:58 Friday
登录
文章检索 我的文章 写文章
C++计算完数
2023-07-04 23:45:03 深夜i     --     --
C++ 计算 完数

完数,又叫完全数,是指一个正整数的所有因子(除了它本身以外)之和等于该数本身。比如说,6是一个完数,因为6的因子有:1、2、3,而1+2+3=6。目前已知的完数只有6、28、496、8128和33550336。那么如何用C++编程来计算完数呢?以下是一个简单的程序:

#include

using namespace std;

int main()

{

  for (int i = 2; i <= 10000; i++) //从2到10000进行遍历

  {

    int sum = 1; //初始值为1

    for (int j = 2; j <= i/2; j++) //遍历i的因子

    {

      if (i % j == 0)

      {

        sum += j; //如果是因子则累加

      }

    }

    if (sum == i) //如果等于本身则输出

      cout << i << "是一个完数!" << endl;

  }

  return 0;

}

我们从2开始遍历所有小于等于10000的数,当i为2时,它只有因子1,1!=2,所以不是完数。当i为3时,它也只有因子1,1!=3,同样不是完数。当i为6时,它的因子有:1、2、3,1+2+3=6,所以是完数。以此类推,我们就会发现程序正确地找到了所有的完数。

当然,以上程序只是一个简单的实现,还有很多可以改进的空间。比如说,我们可以使用更高效的算法,减少不必要的遍历次数;我们也可以将已经找到的完数存储下来,以便以后使用。总之,C++的编程世界充满了无限的可能性。

  
  

评论区

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