F - Goldbach`s Conjecture 对一个大于2的偶数n,找有多少种方法使两个素数的和为n;保证素数a<=b; a+b==n; a,b都为素数。

2023-07-11,,

/**
题目:F - Goldbach`s Conjecture
链接:https://vjudge.net/contest/154246#problem/F
题意:对一个大于2的偶数n,找有多少种方法使两个素数的和为n;保证素数a<=b; a+b==n; a,b都为素数。
思路:直接暴力,为了避免内存超限,用bool类型判断素数。
*/
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e7+;
bool flag[maxn];
int prime[];
int z;
void init()
{
z = ;
for(ll i = ; i<maxn; i++){
if(flag[i]==false){
prime[z++] = i;
for(ll j = i*i; j < maxn; j+=i){
flag[j] = true;
}
}
}
//cout<<"z = "<<z<<endl;
}
int main()
{
init();
int T, n, cas=;
cin>>T;
while(T--)
{
scanf("%d",&n);
int cnt = ;
for(int i = ; prime[i]*<=n; i++){
if(flag[n-prime[i]]==false){
cnt++;
}
}
printf("Case %d: %d\n",cas++,cnt);
}
return ;
}

F - Goldbach`s Conjecture 对一个大于2的偶数n,找有多少种方法使两个素数的和为n;保证素数a<=b; a+b==n; a,b都为素数。的相关教程结束。

《F - Goldbach`s Conjecture 对一个大于2的偶数n,找有多少种方法使两个素数的和为n;保证素数a<=b; a+b==n; a,b都为素数。.doc》

下载本文的Word格式文档,以方便收藏与打印。