21xrx.com
2024-12-23 01:45:32 Monday
登录
文章检索 我的文章 写文章
C++输出n以内的完数
2023-06-28 08:10:58 深夜i     --     --
C++ 完数 输出 n 以内

完数指除本身外所有因子之和等于本身的自然数。在计算机编程中,我们经常需要输出一定范围内的完数。本文将介绍使用C++语言输出n以内的所有完数的方法。

首先,我们需要明确如何判断一个数是否是完数。可以使用一个for循环遍历该数的所有因子,并将其相加,最后与该数本身比较是否相等即可。以下是判断函数的代码实现:


bool isPerfectNumber(int n) {

  int sum = 0;

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

    if (n % i == 0) {

      sum += i;

    }

  }

  return sum == n;

}

使用上述函数,我们可以遍历1至n,判断每个数是否为完数,然后将所有的完数输出即可。以下是输出函数的代码实现:


void printPerfectNumbers(int n) {

  for (int i = 1; i <= n; i++) {

    if (isPerfectNumber(i))

      cout << i << endl;

    

  }

}

最后,我们可以在main函数中调用上述函数输出n以内的所有完数。以下是完整的代码实现:


#include <iostream>

using namespace std;

bool isPerfectNumber(int n) {

  int sum = 0;

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

    if (n % i == 0) {

      sum += i;

    }

  }

  return sum == n;

}

void printPerfectNumbers(int n) {

  for (int i = 1; i <= n; i++) {

    if (isPerfectNumber(i))

      cout << i << endl;

    

  }

}

int main() {

  int n;

  cout << "请输入一个正整数n:" << endl;

  cin >> n;

  cout << "1至" << n << "范围内的完数有:" << endl;

  printPerfectNumbers(n);

  return 0;

}

使用以上代码,我们就可以方便地输出n以内的所有完数了。

  
  

评论区

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