哥德巴赫猜想:
一个偶数(>2)都可以拆成两个质数的和
一个奇数(>5)都可以拆成三个质数的和
但这里注意:
一个奇数还可能拆成:质数2+质数
原话:任一大于2的偶数都可写成两个质数之和,:任一大于5的整数都可写成三个质数之和
然后就分四种情况:
n是质数:1
n是偶数:2(两个质数)
n是奇数:n-2是质数:可以拆成2+质数 2
. n-2不是质数:不可以拆成2+质数 3
#include <iostream> using namespace std; long long n; bool isprime(int x){ for(int i=2;i<=x/i;i++){ if(x%i==0) { return false; } } return true; } int main(int argc, char** argv) { cin>>n; if(isprime(n)) cout<<"1"<<endl; else if(n%2==0||isprime(n-2)) cout<<"2"<<endl; else puts("3"); return 0; }