21xrx.com
2024-11-05 20:45:58 Tuesday
登录
文章检索 我的文章 写文章
编写C++程序求完数并输出因子
2023-07-14 13:19:37 深夜i     --     --
完数 C++程序 输出因子

完数,又称盈数,是指一个数恰好等于它的因子之和,例如6、28等都是完数。本文将介绍如何在C++中编写程序来求解完数并输出它们的因子。如果你正在学习编程,这篇文章或许能帮你进一步了解C++的语法。

先来看看什么是因子。一个数x的因子是指能够整除x的正整数。例如,12的因子有1、2、3、4、6和12。注意,1和x本身也是x的因子。因此,我们可以从2开始遍历,一直到x/2,找出所有能整除x的数,它们就是x的因子。

有了这个定义,我们就可以开始编写求解完数的代码了。下面是一个简单的实现:


#include <iostream>

using namespace std;

int main() {

  int num;

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

  cin >> num;

  for(int i=1; i<=num; i++) {

    int sum=0;

    for(int j=1; j<i; j++) {

      if(i%j==0) {

        sum+=j;

      }

    }

    if(sum==i) {

      cout << i << " 是一个完数,其因子为:";

      for(int k=1; k<i; k++) {

        if(i%k==0)

          cout << k << " ";

        

      }

      cout << endl;

    }

  }

  return 0;

}

程序首先要求用户输入一个正整数,并使用for循环遍历从1到这个数字之间的所有数。对于每个数i,程序内部再使用一个for循环,从1到i-1遍历,找出能整除i的数j,并将这些数的和累加在一起。累加结束后,我们判断sum是否等于i。如果相等,就说明i是一个完数。程序会输出i以及它所有的因子。

需要注意的是,我们的循环从1开始遍历到i-1,因为1和i都是i的因子。

如果你运行这个程序,你会发现它输出了3个完数:6、28和496。这也是对的,因为这三个数恰好等于它们的因子之和。

总的来说,编写C++程序来求出完数并输出因子是非常简单的。通过对程序的分析,你可以学习到很多C++语法知识,并在实践中提高自己的编程能力。

  
  

评论区

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