21xrx.com
2024-09-20 05:58:33 Friday
登录
文章检索 我的文章 写文章
C++编程实现1000以内完数的查找
2023-07-08 20:17:31 深夜i     --     --
C++ 编程 完数 1000以内 查找

完数,又称为完美数,是指一个正整数等于除它本身外其所有因子之和。比如说,6就是一个完数,它的因子是1, 2, 3,而1+2+3=6。

在C++编程中,我们可以通过编写一个简单的程序来查找1000以内的完数。以下是实现这个程序的步骤:

1. 创建一个空的vector列表来存储完数。

2. 创建一个for循环来遍历1到1000之间的所有数字。

3. 在for循环中,创建一个内部for循环来遍历当前数字的所有可能因子。

4. 将所有因子加到一个变量中,检查如果这个变量等于当前数字本身,那么就说明这个数字是一个完数。

5. 如果这个数字是一个完数,将它添加到vector列表中。

6. 最后,输出vector列表中的所有完数。

以下是实现这个程序的C++代码:


#include <iostream>

#include <vector>

using namespace std;

int main()

{

 vector<int> perfect_numbers; // 创建一个vector列表来存储完数

 for (int i = 1; i <= 1000; i++) // 遍历1到1000之间的所有数字

 {

  int sum = 0; // 创建一个变量来保存当前数字的所有因子之和

  for (int j = 1; j < i; j++) // 遍历当前数字的所有可能因子

  {

   if (i % j == 0) // 如果j是i的因子

   {

    sum += j; // 将j加到sum中

   }

  }

  if (sum == i) // 如果sum等于当前数字本身,那么就说明这个数字是一个完数

  {

   perfect_numbers.push_back(i); // 将这个数字添加到vector列表中

  }

 }

 cout << "1000以内的完数有:" << endl; // 输出所有完数

 for (int i = 0; i < perfect_numbers.size(); i++)

 {

  cout << perfect_numbers[i] << " ";

 }

 cout << endl;

 return 0;

}

运行这个程序,你将会得到以下输出:


1000以内的完数有:

6 28 496

因此,这个程序找到了1000以内的所有完数,分别为6、28和496。

  
  

评论区

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