POJ 2909 && HDU 1397 Goldbach's Conjecture(数论)

来源:互联网 发布:快说话配音软件 编辑:程序博客网 时间:2024/06/06 03:10

Description
给出一个偶数,要求在这个偶数的范围内,有几对素数和是等于这个偶数的,注意素数对的不重复性
Input
多组输入,每组用例一个偶数n表示查询数,以n=0结束输入
Output
对于每组用例,输出组成该偶数的素数对对数
Sample Input
6
10
12
0
Sample Output
1
2
1
Solution
简单数论题,打出素数表后暴力枚举即可
Code

#include<cstdio>#include<iostream>#include<cstring>using namespace std;#define maxn 33333bool prime[maxn];void get_prime(){    memset(prime,true,sizeof(prime));    prime[0]=prime[1]=false;    for(int i=2;i<maxn;i++)        if(prime[i])            for(int j=2*i;j<maxn;j+=i)                prime[j]=false;}int main(){    get_prime();    int n;    while(scanf("%d",&n),n)    {        int ans=0;        for(int i=2;2*i<=n;i++)            if(prime[i]&&prime[n-i])                ans++;        printf("%d\n",ans);     }     return 0;} 
0 0
原创粉丝点击