//完数是指一个数恰好等于它的所有不同因子之和
//比如 6 = 3 + 2 + 1
//输入 n(1 <= n <= 10000) 输出不大于n的所有完数
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int sum;
int i, j;
int n;
vector<int> v;
for(i = 2; i <=10000; i++)//因为n可以取到10000,为了节省时间,先把1到10000之间的完数计算出来,存储到向量中
{
sum = 1;
for(j = 2; j <= i / 2; j++)
{
if(i % j == 0)
sum += j;
}
if(sum == i)
v.push_back(i);
}
while(cin >> n)
{
cout << n << ": ";
for(i = 0; i < v.size(); i++)
{
if(v[i] <= n)
cout << v[i] << " ";
}
cout << endl;
}
return 0;
}
列出完数
最新推荐文章于 2023-05-06 08:31:21 发布