CodeForces 735D Taxes

哥德巴赫猜想。

如果$n$是素数,答案为$1$。

如果$n$不是素数,但$n$是偶数,由哥德巴赫猜想可知答案为$2$。

如果$n$不是素数,且$n$为奇数,此时可以将$n$拆成$3+$偶数或者$2+$素数的形式,前者答案为$3$,后者答案为$2$。

#include<iostream>
using namespace std;

bool f(long long x)
{
    for(long long i=2;i*i<=x;i++)
    {
        if(x%i==0) return 0;
    }
    return 1;
}

int main()
{
    long long n;
    int ans;
    cin>>n;
    if(f(n))ans=1;
    else 
    {
        if(n%2==0) ans=2;
        else 
        {
            if(f(n-2)) ans=2;
            else ans=3;
        }
    }
    cout<<ans;
    return 0;
}

 

posted @ 2016-12-06 15:54 Fighting_Heart 阅读(...) 评论(...) 编辑 收藏