21xrx.com
2025-03-27 16:28:49 Thursday
文章检索 我的文章 写文章
使用C++求完数及其因子
2023-07-02 02:09:03 深夜i     --     --
C++ 完数 因子

完数指一个正整数等于其所有因子之和的数,例如6就是一种完数,因为6的因子是1、2、3,而1+2+3=6。而计算完数和它的因子是编程中的一个经典问题,下面我们使用C++来实现这个功能。

C++提供了一种常用的计算完数的方法,我们可以通过遍历每一个正整数,找出它的所有因子并判断它们的和是否等于该数本身。代码实现如下:

#include <iostream>
using namespace std;
int main()
{
  int n;
  cout << "请输入正整数n: ";
  cin >> n;
  for (int i = 1; i <= n; i++) {
    int sum = 0;
    for (int j = 1; j <= i / 2; j++) {
      if (i % j == 0) {
        sum += j;
      }
    }
    if (sum == i) {
      cout << i << "是完数,它的因子为:";
      for (int j = 1; j <= i / 2; j++) {
        if (i % j == 0)
          cout << j << " ";
        
      }
      cout << endl;
    }
  }
  return 0;
}

以上代码首先要求用户输入一个正整数n,然后遍历从1到n的所有正整数,并找出它们的所有因子,然后判断因子的和是否等于该数本身。如果找到一个完数,就输出该完数以及其因子。在输出因子时,我们再次循环遍历该完数的所有因子并依次输出。

在程序运行时,我们可以输入任意一个正整数n,程序将在1到n的所有正整数中找出完数并输出它们的因子。举个例子,当我们输入n=28时,程序将输出:

6是完数,它的因子为:1 2 3
28是完数,它的因子为:1 2 4 7 14

以上就是使用C++编写计算完数及其因子的代码。通过这个例子,我们可以学习到C++的基础语法和循环结构,也可以提高我们的编程思维和实践能力。

  
  

评论区