21xrx.com
2025-04-03 18:05:26 Thursday
文章检索 我的文章 写文章
C++求解正整数2和n之间的完全数
2023-07-05 06:05:37 深夜i     --     --
C++ 求解 正整数 完全数 n

完美数是指一个正整数除了本身以外的所有因子之和等于本身的正整数。而2和n之间有哪些完美数呢?这个问题可以通过使用C++来求解。

首先,我们需要定义一个函数来判断某一个数是不是完美数。这个函数可以用以下代码实现:

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

这个函数首先定义了一个变量`sum`,用来累加所有因子的和。然后,使用一个循环来遍历1到num/2之间的所有数,如果这个数是num的因子,就将它累加到`sum`中。最后,如果`sum`等于num,那么这个数就是完美数,返回true,否则返回false。

接着,我们可以在main函数中调用这个函数,将2到n之间的所有完美数输出出来。这个代码可以写成这样:

int main() {
  int n;
  cin >> n;
  for (int i = 2; i <= n; i++) {
    if (isPerfect(i))
      cout << i << " ";
    
  }
  return 0;
}

这个代码首先读取用户输入的数字n,然后使用一个循环来遍历2到n之间的所有整数。如果这个整数是完美数,就将它输出到屏幕上。最后,返回0,表示程序正常结束。

通过这个程序,我们可以求解出2到n之间的所有完美数,从而更好地理解数论中的完美数概念。

  
  

评论区