21xrx.com
2025-06-06 04:37:32 Friday
文章检索 我的文章 写文章
C++语言编写1000以内的完全数程序
2023-07-05 12:02:40 深夜i     18     0
C++语言 完全数 编程 算法 1000

完全数是指一个数恰好等于它的因子之和,例如6 = 1 + 2 + 3就是一个完全数。虽然完全数并不常见,但是研究完全数的规律和构造方法可以帮助我们更深入地了解数学的奥秘。在本文中,我们将介绍如何使用C++编写一个计算1000以内完全数的程序。

首先,我们需要定义一个函数来计算一个数的因子之和。这个函数的代码如下:

int sum_of_divisors(int n)
{
  int sum = 0;
  for (int i = 1; i < n; i++)
  {
    if (n % i == 0)
    {
      sum += i;
    }
  }
  return sum;
}

这个函数接受一个整数n作为参数,然后遍历1到n-1之间的所有数,将n的因子加起来并返回它们的和。

接下来,我们需要编写一个主函数来枚举1000以内的所有数,并判断它们是否为完全数。代码如下:

int main()
{
  for (int n = 1; n <= 1000; n++)
  {
    if (n == sum_of_divisors(n))
    
      cout << n << " is a perfect number" << endl;
    
  }
  return 0;
}

这个主函数遍历1到1000之间的所有数,然后调用sum_of_divisors函数来计算它们的因子之和。如果这个和等于这个数本身,那么就输出这个数是一个完全数。

最后,我们需要在程序开始时包含头文件iostream来打印输出。完整的代码如下:

#include <iostream>
using namespace std;
int sum_of_divisors(int n)
{
  int sum = 0;
  for (int i = 1; i < n; i++)
  {
    if (n % i == 0)
    {
      sum += i;
    }
  }
  return sum;
}
int main()
{
  for (int n = 1; n <= 1000; n++)
  {
    if (n == sum_of_divisors(n))
    
      cout << n << " is a perfect number" << endl;
    
  }
  return 0;
}

现在我们可以编译并运行这个程序,它将会输出1到1000之间所有的完全数。您可以在输出结果中找到6、28、496等完全数。

  
  

评论区