21xrx.com
2025-03-17 15:35:03 Monday
文章检索 我的文章 写文章
C++编写完美数求解程序
2023-07-10 19:10:09 深夜i     15     0
C++ 完美数 求解程序

编程爱好者和专业程序员使用C++编写各种应用程序,包括解决数学问题。完美数是一个有趣的数学问题,可以通过C++编写程序来解决。

完美数是指一个正整数,它等于除它本身外其所有因子(包括1但不包括它本身)之和的一半。例如,6是一个完美数,因为1、2和3是它的因子,且1+2+3 = 6。

使用C++编写完美数求解程序需要一些数学技能和编程知识。以下是一个简单的程序,它可以找到给定范围内的所有完美数。

首先需要编写一个函数isPerfect(),它可以计算给定的数是否是完美数。该函数使用一个for循环来检查所有因子,并将它们相加起来。然后,它与原始数字相比较,如果它们相等,说明该数字是完美数,返回TRUE。

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

接下来,需要编写一个主函数main(),它将调用isPerfect()函数来找到所有给定范围内的完美数。该函数使用一个for循环,从2开始迭代到给定范围。如果当前数字是完美数,它将打印该数字。

int main() {
  int range;
  cout << "Enter a range: ";
  cin >> range;
  cout << "Perfect numbers within " << range << ": " << endl;
  for (int i = 2; i <= range; i++) {
    if (isPerfect(i))
      cout << i << endl;
    
  }
  return 0;
}

现在,完整的程序如下所示:

#include <iostream>
using namespace std;
bool isPerfect(int num) {
  int sum = 0;
  for (int i = 1; i <= num / 2; i++) {
    if (num % i == 0) {
      sum += i;
    }
  }
  return sum == num;
}
int main() {
  int range;
  cout << "Enter a range: ";
  cin >> range;
  cout << "Perfect numbers within " << range << ": " << endl;
  for (int i = 2; i <= range; i++) {
    if (isPerfect(i))
      cout << i << endl;
    
  }
  return 0;
}

有了此程序,您可以输入要查找的范围,并在控制台输出所有完美数。这是C++编写解决完美数问题的简单而有趣的方法。

  
  

评论区