21xrx.com
2025-04-12 11:36:33 Saturday
文章检索 我的文章 写文章
C++编程实现1000以内完数的查找
2023-07-08 20:17:31 深夜i     10     0
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。

  
  

评论区

请求出错了