21xrx.com
2024-12-22 20:08:11 Sunday
登录
文章检索 我的文章 写文章
使用C++编程寻找1000以内的完数
2023-07-07 04:24:15 深夜i     --     --
C++ 编程 寻找 完数 1000

完数是指一个正整数的所有因子之和等于它本身的数。例如,6是一个完数,因为1+2+3=6,而28也是一个完数,因为1+2+4+7+14=28。在本文中,我们将使用C++编程来寻找1000以内的所有完数。

为了实现这个任务,我们需要定义一个函数来计算一个数字的因子之和。我们可以使用循环来遍历1到该数字的所有可能因子,并将它们相加。以下是计算因子之和的函数:


int sum_of_factors(int num)

{

  int sum = 0;

  for (int i = 1; i < num; i++) {

    if (num % i == 0) {

      sum += i;

    }

  }

  return sum;

}

现在,我们可以通过调用该函数来检查1000以内的所有数字。我们使用另一个循环来遍历1到1000,并在每个数字上调用函数。如果函数返回的值等于该数字,则该数字是一个完数。以下是完数的查找代码:


for (int i = 1; i <= 1000; i++) {

  if (sum_of_factors(i) == i)

    cout << i << " is a perfect number." << endl;

  

}

将这两个段代码组合起来,我们的完整程序如下所示:


#include <iostream>

using namespace std;

int sum_of_factors(int num)

{

  int sum = 0;

  for (int i = 1; i < num; i++) {

    if (num % i == 0) {

      sum += i;

    }

  }

  return sum;

}

int main()

{

  for (int i = 1; i <= 1000; i++) {

    if (sum_of_factors(i) == i)

      cout << i << " is a perfect number." << endl;

    

  }

  return 0;

}

当我们运行这个程序时,它会输出所有小于或等于1000的完数。这里是输出结果:


6 is a perfect number.

28 is a perfect number.

496 is a perfect number.

本文中我们介绍了如何使用C++编程来寻找一组数字中的完数。我们定义了一个函数来计算一个数字的因子之和,并使用循环来遍历所有数字以查找完数。尝试使用此程序来寻找更大的完数(例如10,000以内的完数)吧!

  
  

评论区

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