思路:
哥德巴赫猜想:任意大于2的偶数都可以写成两个素数的和
分类讨论:
一:n是素数输出1
二:大于2的偶数或者非素数奇数-2仍为素数的输出2
三:剩下的输出3
除了2之外,所有的质数都是奇数,因此一个奇数只有减2后才可能是质数,因为奇数-偶数=奇数,但如果减4那就必然不可能是两个质数之和了
比如27不能由2+素数构成所以结果是3
#include<iostream>
using namespace std;
int sushu(int a)
{
for(j=2;j*j<=a;j++) {if(a%j==0) return 0;}
return 1;
}
int main()
{
int n;
cin>>n;
if(sushu(n)) cout<<'1';
else if(n%2==0||(sushu(n-2)&&n%2!=0)) cout<<'2';
else cout<<'3';
return 0;
}