21xrx.com
2024-11-08 22:03:51 Friday
登录
文章检索 我的文章 写文章
C++实现求解1000以内的完数
2023-07-11 04:51:00 深夜i     --     --
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;

}

  
  

评论区

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