21xrx.com
2025-03-21 17:58:43 Friday
文章检索 我的文章 写文章
C++实现求解1000以内的完数
2023-07-11 04:51:00 深夜i     42     0
C++ 求解 完数 1000以内

完数是指一个数等于它的因数之和,例如6是完数因为6=1+2+3。在C++中,我们可以通过循环嵌套和条件判断来实现求解1000以内的所有完数。

首先,我们需要编写一个函数来检查一个数是否为完数。该函数的算法是:使用一个循环变量i从1到该数的一半(因为一个数的因数最大也只可能是它的一半),如果i是该数的因数,则将i加入一个sum变量中。如果sum等于该数,则该数是完数。代码如下:

bool is_Perfect_Number(int n)
{
  int sum = 0;
  for(int i = 1; i <= n/2; i++)
  {
    if(n%i == 0)
    {
      sum += i;
    }
  }
  return sum == n;
}

接下来,我们可以通过一个循环遍历1000以内的所有数,并调用这个函数来检查它们是否是完数。如果是完数,则将其输出到控制台。代码如下:

int main()
{
  for(int i = 1; i <= 1000; i++)
  {
    if(is_Perfect_Number(i))
    
      cout << i << endl;
    
  }
  return 0;
}

通过以上代码,我们就可以求解1000以内的所有完数了。完整代码如下:

#include <iostream>
using namespace std;
bool is_Perfect_Number(int n)
{
  int sum = 0;
  for(int i = 1; i <= n/2; i++)
  {
    if(n%i == 0)
    {
      sum += i;
    }
  }
  return sum == n;
}
int main()
{
  for(int i = 1; i <= 1000; i++)
  {
    if(is_Perfect_Number(i))
    
      cout << i << endl;
    
  }
  return 0;
}

  
  

评论区