21xrx.com
2024-11-22 06:53:00 Friday
登录
文章检索 我的文章 写文章
C++语言探讨——如何求完数?
2023-07-03 15:21:07 深夜i     --     --
C++ 完数 求解 循环 因子

完数是指一个数恰好等于其所有因子之和,例如6、28、496等。在C++语言中,求完数的方法可以非常简单。我们可以按照以下步骤进行:

第一步,输入一个正整数n;

第二步,用for循环从1到n-1枚举所有可能的因子,如果它是n的因子,就将它加入sum中;

第三步,如果sum等于n,那么说明n是一个完数,输出n的值即可。

根据上述步骤,我们可以给出一个完数求解的C++程序实现:


#include <iostream>

using namespace std;

int main() {

  int n;

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

  cin >> n;

  int sum = 0;

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

    if (n % i == 0) {  // 如果i是n的因子

      sum += i;    // 将i加入sum中

    }

  }

  if (sum == n) 说明n是完数

    cout << n << "是一个完数!" << endl;

  else         // 否则n就不是完数

    cout << n << "不是一个完数!" << endl;

 

  return 0;

}

以上程序可以用于判断一个正整数是否是完数。但如果我们想列举出n以内所有的完数,我们就需要用到另外一个for循环程序来进行遍历求解。具体实现方法如下:


#include <iostream>

using namespace std;

int main() {

  int n;

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

  cin >> n;

  for (int j = 1; j <= n; ++j) {  // 从1到n枚举每一个数

    int sum = 0;

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

      if (j % i == 0) {     // 如果i是j的因子

        sum += i;       // 将i加入sum中

      }

    }

    if (sum == j)        // 如果sum等于j

  }

  return 0;

}

通过以上程序,我们可以一次性输出n以内的所有完数。这是非常简单而实用的C++完数求解程序。

  
  
下一篇: C++密码锁

评论区

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