21xrx.com
2024-12-27 14:59:41 Friday
登录
文章检索 我的文章 写文章
C++实现完数判断
2023-06-30 12:49:42 深夜i     --     --
完数 C++ 算法 程序 循环

完数,是指一个数恰好等于它的因子之和,例如6、28、496等,是数论中的经典问题。这篇文章将介绍如何使用C++实现完数判断。

完数判断的思路是遍历一个数的所有因子,并将它们加起来,判断结果是否等于这个数。

在C++中,使用循环语句和条件判断语句可以有效实现这一过程。这里我们可以从2开始循环到这个数的平方根,并判断是否是它的因子。如果是,则将其加入一个累加器中。最后比较累加器和这个数是否相等即可得出结果。

下面是完数判断的C++实现代码:


#include <iostream>

#include <cmath>

using namespace std;

int main() {

  int n;

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

  cin >> n;

  int sum = 1;

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

    if (n % i == 0) {

      sum += i;

      if (i != n / i) {

        sum += n / i;

      }

    }

  }

  if (sum == n)

    cout << n << "是完数" << endl;

   else

    cout << n << "不是完数" << endl;

  

  return 0;

}

在上面的代码中,我们使用了一个变量sum来累加因子的和,初始值为1,因为1也是任何数的因子。当循环遍历到一个因子i时,如果它是这个数n的因子,我们就将其加入sum中,然后再判断n/i是否也是它的因子,如果是,也将其加入sum中,确保所有因子被计算。最后,我们判断sum是否等于n即可。

这样,完数判断就成功实现了。以上代码可以扩展到任何正整数,可以在数论问题中得到广泛应用。

  
  

评论区

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