21xrx.com
2024-11-22 09:51:51 Friday
登录
文章检索 我的文章 写文章
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的每个数。

  
  

评论区

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