zoukankan      html  css  js  c++  java
  • 普通素数筛

    寻找素数对 HDU1262
    哥德巴赫猜想大家都知道一点吧.我们现在不是想证明这个结论,而是想在程序语言内部能够表示的数集中,任意取出一个偶数,来寻找两个素数,使得其和等于该偶数. 
    做好了这件实事,就能说明这个猜想是成立的. 
    由于可以有不同的素数对来表示同一个偶数,所以专门要求所寻找的素数对是两个值最相近的. 
    Input输入中是一些偶整数M(5<M<=10000). 
    Output对于每个偶数,输出两个彼此最接近的素数,其和等于该偶数. 
    Sample Input
    20 30 40
    Sample Output
    7 13
    13 17
    17 23
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    #include<stack>
    using namespace std;
     
    void isPrime(int a[])
    {
        for(int i=0;i<10007;i++)
        {
            a[i] = 1;
        }
        a[0] = a[1] = 0;
        for(int i=2;i<((10007+1)>>1);i++)
        {
            if(a[i])
            {
                for(int j=(i<<1);j<10007;j+=i)
                    a[j] = 0;
            }
        }
    }
     
    int main(){
        int prime[10007];
        isPrime(prime);
        int a;
        while(scanf("%d",&a)!=EOF)
        {
            a = (a>>1);
            int ans1 = a,ans2 = a;
            while(1)
            {
                if(prime[ans1] && prime[ans2]) break;
                ans1--; ans2++;
            }
            printf("%d %d ",ans1,ans2);
        }
        return 0;
    }





  • 相关阅读:
    MongoDB入门
    查看端口通不通
    jQuery通过name获取值
    thinking in java
    xml配置文件解释
    Spring定时器时间设置规则
    修改序列(Sequence)的初始值(START WITH)
    Go语言实现简单的一个静态WEB服务器
    [转载]XML非法字符的处理
    IIS7解决文件上传大小问题
  • 原文地址:https://www.cnblogs.com/liwenchi/p/7259372.html
Copyright © 2011-2022 走看看