哥德巴赫猜想

①如果一个数为偶数,那么可以拆成两个质数相加

②如果一个奇数 (n-2)为质数那么他也可以拆成两个质数相加(2+(n-2))。例如25=2+23。

③其他的奇数可以拆成一个 质数+一个偶数,也就是 3个质数相加。

思路:答案就是1,2,3三种情况,根据哥德巴赫猜想讨论一下即可。
#include <set>
#include <map>
#include <stdio.h>
#include <string.h>
#include <cmath>
#include <algorithm>
#include <iostream>
#define pb push_back
#define IOS ios::sync_with_stdio(false);cin.tie(0); cout.tie(0)
#define fi first
#define se second
 
 
using namespace std;
const int INF = 0x3f3f3f3f;//?????
typedef long long ll;
typedef long double ld;
typedef pair<ll, int>  pll;
typedef pair<int, int> pii; 
const int N = 1e5+5;
int a[55],b[55],color[N],st[N];ll sum[N];
int cnt;
ll qpow(ll x,ll y,ll mod)
{
	int ans=1;
	while(y)
	{
		if(y&1) ans=ans*x%mod;
		x=x*x%mod;
		y>>=1;
	}
	return ans%mod;
}
int prime(int n)
{
	for(int i=2;i*i<=n;i++)
	{
		if(n%i==0) return 0;
	}
	return 1;
}
int main()
{
	IOS;
	int n; cin >> n;
	int flag=0;flag=prime(n);
	if(flag==1)
	{
		cout << 1 << endl;
	}
	else 
	{
		if(n%2==0) {
			cout << 2 << endl;
		}
		else 
		{
			flag=0;
			flag=prime(n-2);
			if(flag) cout << 2 << endl;
			else cout << 3 << endl; 
		}
	}
	return 0; 
}


全部评论

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务