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; }