列出完数

/*
Jennifer
2018年2月3日15:46:44-2018年2月3日16:20:08

*/
#include <iostream>
#include <vector>
using namespace std;
int main()
{
    vector<int> a;

    for(int i = 2;i<10000;i=i+2)  //完数必然为偶数
    {
        int sum = 1;      //1肯定是完数的一个分子
        for(int j=2;j<=i/2;j++)      //任何数最大最大的分子是他的一半(本身除外)
)        {
            if(i%j==0)         //若是他的分子,则加入到sum中
                sum = sum + j;
        }
        if(sum == i)         //最后判断是不是完数
            a.push_back(i);
    }
    int n;
    while(cin>>n)
    {
        cout<<n<<":";
        for(int i = 0;i<a.size();i++)
        {
            if(a[i]<=n)
                cout<<" "<<a[i];
        }
        cout<<endl;
    }
    return 0;
}

发布了47 篇原创文章 · 获赞 29 · 访问量 1万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章