21xrx.com
2025-03-26 17:36:32 Wednesday
文章检索 我的文章 写文章
C++:输出小于等于n的完全数个数
2023-06-23 07:51:41 深夜i     --     --
C++ 完全数 输出 n 个数

完全数是指一个正整数,它等于其所有因数(不包括该数本身)之和。比如,6是完全数,因为6的因数有1、2、3,而1+2+3=6。而11不是完全数,因为它的因数只有1和11,而1≠11。

在C++中,我们可以通过以下代码来判断一个数是否是完全数:

int sum = 0;
for (int i = 1; i < n; i++) {
  if (n % i == 0) {
    sum += i;
  }
}
if (sum == n)
  // n是完全数
else
  // n不是完全数

现在,如果我们想输出小于等于n的完全数个数,可以用如下代码:

int count = 0;
for (int i = 1; i <= n; i++) {
  int sum = 0;
  for (int j = 1; j < i; j++) {
    if (i % j == 0) {
      sum += j;
    }
  }
  if (sum == i) {
    count++;
  }
}
cout << count << endl;

上面的代码中,我们使用一个循环来枚举小于等于n的每个数i。对于每个i,我们再使用一个循环来计算它的所有因数之和,如果该和等于i,则说明i是完全数,我们将计数器加一。最后,我们输出计数器的值,即小于等于n的完全数个数。

需要注意的是,上述代码中,第二个循环的起始值是1,而不是2,因为1也是i的因数。此外,我们在判断完全数的条件时,使用的是sum==i,而不是sum==n,同样是因为i才是我们求的小于等于n的每个数。

  
  

评论区