21xrx.com
2025-04-14 13:29:43 Monday
文章检索 我的文章 写文章
C++代码:求完数并输出其因子
2023-07-04 10:04:21 深夜i     23     0
C++ 完数 因子 输出

完数是指一个数恰好等于它的因子之和,例如6=1+2+3。在C++中,编写程序求出一定范围内的所有完数并输出其因子是非常简单的。下面让我们来看看这个程序的实现过程。

首先,我们需要定义一个函数来判断一个数是否为完数。函数的实现方式如下:

bool isPerfect(int num) {
  int sum = 1;
  for (int i = 2; i <= num / 2; i++) {
    if (num % i == 0) {
      sum += i;
    }
  }
  if (sum == num)
    return true;
   else
    return false;
  
}

该函数接受一个整数参数`num`,并遍历从2到`num/2`的所有整数,将`num`的因子相加。最后,如果这个因子和恰好等于`num`,则返回`true`,否则返回`false`。

接下来,我们需要编写一个循环来遍历一定范围内的所有整数,判断它们是否为完数并输出其因子。具体实现代码如下:

int main() {
  int minNum, maxNum;
  cout << "请输入范围的最小值和最大值(用空格分隔):" << endl;
  cin >> minNum >> maxNum;
  for (int i = minNum; i <= maxNum; i++) {
    if (isPerfect(i)) {
      cout << i << "的因子为:1, ";
      for (int j = 2; j <= i / 2; j++) {
        if (i % j == 0)
          cout << j << "
      }
      cout << i << endl;
    }
  }
  return 0;
}

该程序通过标准输入获取用户输入的一定范围内的最小值和最大值,并在循环中遍历这个范围内的所有整数。对于每个整数,我们调用`isPerfect()`函数判断是否为完数。如果是,则输出该数以及它的因子,其中从2到`num/2`的所有整数都可能是`num`的因子,因此需要遍历它们。输出格式为:“num的因子为:1, factor1, factor2, ..., num”。

上述代码实现了求一定范围内的所有完数并输出其因子的功能,可以为我们更好地理解数学中的完数提供帮助。

  
  

评论区

请求出错了