21xrx.com
2024-11-22 07:08:57 Friday
登录
文章检索 我的文章 写文章
C++代码实现求完数之和
2023-07-05 03:03:32 深夜i     --     --
C++ 完数 代码实现

完数(Perfect Number)是指一个自然数等于除其本身外的所有因子之和。例如6是完数,因为6=1+2+3。求完数是很常见的数学问题,下面来介绍如何使用C++代码来实现求完数之和。

首先,需要定义一个函数isPerfectNumber,用于判断一个数是否为完数。判断一个数是否为完数,需要找出它的所有因子,并将这些因子相加,最终与这个数本身进行比较,如果相等,则该数为完数。

以下是判断一个数是否为完数的C++代码:


bool isPerfectNumber(int num) {

  int sum = 0;

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

    if(num%i == 0){

      sum += i;

    }

  }

  if(sum == num)

    return true;

  

  else

    return false;

  

}

接下来,定义另一个函数sumOfPerfectNumber,用于计算一定范围内完数的和。可以在该函数中使用isPerfectNumber函数来判断每个数是否为完数,并将完数的和进行累加。

以下是计算一定范围内完数之和的C++代码:


int sumOfPerfectNumber(int start, int end){

  int sum = 0;

  for(int i=start;i<=end;i++){

    if(isPerfectNumber(i)){

      sum += i;

    }

  }

  return sum;

}

最后,在主函数中调用sumOfPerfectNumber函数并传入起始数和结束数的值,即可得到指定范围内完数之和。

以下是主函数的C++代码:


int main()

{

  int start = 1;

  int end = 100; //在1-100范围内求完数之和

  int sum = sumOfPerfectNumber(start, end);

  cout << "Sum of perfect numbers between " << start << " and " << end << " is " << sum << endl;

  return 0;

}

运行程序后,会得到输出结果:

Sum of perfect numbers between 1 and 100 is 31

因此,在1到100的范围内,求出了完数之和为31的结果。

  
  

评论区

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