zoukankan      html  css  js  c++  java
  • Goldbach`s Conjecture(素筛水题)题解

    Goldbach`s Conjecture

     

    Goldbach's conjecture is one of the oldest unsolved problems in number theory and in all of mathematics. It states:

    Every even integer, greater than 2, can be expressed as the sum of two primes [1].

    Now your task is to check whether this conjecture holds for integers up to 107.

    Input

    Input starts with an integer T (≤ 300), denoting the number of test cases.

    Each case starts with a line containing an integer n (4 ≤ n ≤ 107, n is even).

    Output

    For each case, print the case number and the number of ways you can express n as sum of two primes. To be more specific, we want to find the number of (a, b) where

    1)      Both a and b are prime

    2)      a + b = n

    3)      a ≤ b

    Sample Input

    2

    6

    4

    Sample Output

    Case 1: 1

    Case 2: 1

    思路:

    水题一只,叫你求n=a+b且a,b都是素数这样的ab的对数。只要素筛一下,就能做了。最好先储存一下10^7以内的素数,数答案时只要到n/2就行了(因为a<=b),不知道不弄会不会超时,可以试一下。

    代码:

    #include<cstdio>
    #include<cstring>
    #include<cstdlib>
    #include<cctype>
    #include<queue>
    #include<cmath>
    #include<string>
    #include<map>
    #include<stack> 
    #include<set>
    #include<vector>
    #include<iostream>
    #include<algorithm>
    #define INF 0x3f3f3f3f
    #define ll long long
    const int N=10000005;	//18
    const int MOD=1000; 
    using namespace std;
    bool prime[N];
    int p[N/10],pn;
    void get_prime(){
    	pn=0;
    	memset(prime,false,sizeof(prime));
    	prime[0]=prime[1]=true;
    	for(long long i=2;i<N;i++){
    		if(!prime[i]){
    			p[pn++]=i;
    			for(long long j=i*i;j<N;j+=i){
    				prime[j]=true;
    			}
    		}
    	}
    }
    int main(){
    	get_prime();
    	int T,n,num=1,ans;
    	scanf("%d",&T);
    	while(T--){
    		scanf("%d",&n);
    		ans=0;
    		for(int i=0;p[i]<=n/2;i++){
    			if(prime[n-p[i]]==false) ans++;
    		}
    		printf("Case %d: %d
    ",num++,ans);
    	}
    	return 0;
    }



  • 相关阅读:
    Unity3D系列教程--使用免费工具在Unity3D中开发2D游戏 第一节
    第十三周项目2:形状类族中的纯虚函数
    js中的null和undefined
    javaScript Windows相关
    Array和ArrayList的异同点
    汉语-词语-人才:T型人才
    图书-计算机-软件编程:《程序员的自我需要》
    智力-智力测试-门萨:百科
    智力开发-早教:七田真
    经济-AMA:百科
  • 原文地址:https://www.cnblogs.com/KirinSB/p/9409119.html
Copyright © 2011-2022 走看看