一道数论题 不会..
但是学到了哥德巴赫猜想这个东西
对于一个合数 如果是偶数就可以分解成两个质数之和
如果是奇数就看拿出一个2后是不是质数 是的话就为2 不是的话就为3
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int check(ll n)
{
ll i;
for(i=2;i*i<=n;i++)
{
if(n%i==0) return 0;
}
return 1;
}
int main()
{
ll n;
while(scanf("%lld",&n)!=EOF)
{
if(n==2) printf("1\n");
else if(n==3) printf("1\n");
else if(n==4) printf("2\n");
else if(n==5) printf("1\n");
else if(n==6) printf("2\n");
else if(n==7) printf("1\n");
else if(check(n)) printf("1\n");
else if(n%2==0) printf("2\n");
else if(check(n-2)) printf("2\n");
else printf("3\n");
}
return 0;
}