21xrx.com
2025-03-26 13:29:11 Wednesday
文章检索 我的文章 写文章
C++代码实现求完数之和
2023-07-05 03:03:32 深夜i     14     0
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的结果。

  
  

评论区

请求出错了