【问题标题】:How to find all perfect numbers in specific interval in c++? [closed]如何在c ++中找到特定区间内的所有完美数? [关闭]
【发布时间】:2013-11-06 01:51:00
【问题描述】:

我想找到从区间 x 到 y 的所有完美数。任何帮助我该怎么做?

【问题讨论】:

    标签: c++ perfect-numbers


    【解决方案1】:

    这是一个简单的解决方案,它不是很快,只是一个例子来了解完美数字是如何工作的。

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        int x, y;
        int sum_del;
        cin >> x >> y;
        for(int i = x; i <= y; i++){
    
            sum_del = 0;
    
            for (int j = 1; j <= i/2; j++){
                if (i % j == 0)
                    sum_del += j;
            }
    
            if (sum_del == i)
                cout << i << endl;
    
        }
        return 0;
    }
    

    【讨论】:

    • 直到 i/2 也不需要检查,从 2 到 sqrt(i) 就足够了。 :)
    • 谢谢,我明白了。谢谢你的例子!
    • 实际上,最好的办法是跳过每一秒(每个奇数)的数字——有一个定理证明,如果有一个奇完美数,它必须大于 10^300 .
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-17
    • 1970-01-01
    • 2012-09-30
    • 1970-01-01
    • 1970-01-01
    • 2013-04-05
    相关资源
    最近更新 更多