zoukankan      html  css  js  c++  java
  • UVA10168

    以前一直觉得做算法题浪时间,现在才体会到它的重要性。哎,以后坚持每天刷吧......


    哥德巴赫猜想:任一大于2的偶数,都可表示成两个素数之和维基里面讲的很详细。

    根据这个思路写代码就行了。

    #include<iostream>
    #include<cmath>
    using namespace std;
    bool isPrime(int);
    void Find(int);
    /**
    任何大于4的偶数都可以表示成两个素数之和
    **/
    int main()
    {
    
        int number;
        while(cin>>number)
        {
            if(number<8)   //2+2+2+2  不可能有更小的和了
                cout<<"Impossible."<<endl;
            else
            {
                if(number%2==0)
                {
                    cout<<2<<" "<<2<<" ";
                    Find(number-4);   //偶数减去4还是偶数
                }
                else
                {
                    cout<<2<<" "<<3<<" ";
                    Find(number-5);  //奇数减去5为偶数
                }
            }
        }
        return 0;
    }
    
    bool isPrime(int testNumber)
    {
        if(testNumber<=2)
            return true;
        if(testNumber%2==0)
            return false;
        //testNumber 必定为大于3的奇数
        for(int i=3;i<=ceil(sqrtl(testNumber));i=i+2)
            if(testNumber%i==0)
                return false;
        return true;
    }
    
    void Find(int number)
    {
        for(int i=2;i<=(number)/2;i++)
            if(isPrime(i)&&isPrime(number-i))
            {
                 cout<<i<<" "<<number-i<<endl;
                 return;
            }
    }
    


  • 相关阅读:
    累计定时中断次数使LED灯闪烁
    累计主循环次数使LED灯闪烁
    树莓派
    树莓派
    树莓派--bcm2835 library (2) 交叉编译BCM2835
    树莓派 -- bcm2835 library (1)
    树莓派
    树莓派
    树莓派
    树莓派-3 启用root
  • 原文地址:https://www.cnblogs.com/bbsno1/p/3265228.html
Copyright © 2011-2022 走看看