列出完數

/*
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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章