21xrx.com
2024-09-20 00:56:53 Friday
登录
文章检索 我的文章 写文章
求一个数恰好等于它的因子之和的c++程序
2023-07-08 01:28:46 深夜i     --     --
C++程序 因子和 求解

对于一个正整数n,如果它的因子之和等于n本身,我们就称n是完全数。

例如,6是一个完全数,因为它的因子是1,2,3,而1 + 2 + 3 = 6。

那么,如何编写一个C++程序来判断一个数是不是完全数呢?

从数学的角度来看,一个数的因子都是成对出现的,因此我们可以只枚举1到sqrt(n)之间的数,把它们作为n的因子,同时求出它们成对出现的另一个因子。最后把这些因子相加,看是否等于n本身。

下面是一个简单的C++程序,可以用来判断一个数是否是完全数。


#include <bits/stdc++.h>

using namespace std;

int main() {

  int n;

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

  cin >> n;

  int sum = 1; //1也是n的因子

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

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

      sum += i; //把i加入因子之和

      if (n / i != i) { //如果i不是n的平方根

        sum += n / i; //把n/i加入因子之和

      }

    }

  }

  if (sum == n) //如果因子之和等于n本身

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

   else //否则

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

  

  return 0;

}

我们可以运行程序,输入一个正整数n,看看它是不是完全数。如果是,程序会输出n是一个完全数;如果不是,程序会输出n不是一个完全数。

综上所述,通过这个简单的C++程序,我们可以方便地判断一个数是否是完全数,希望它能帮助到大家。

  
  

评论区

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