zoukankan      html  css  js  c++  java
  • HDU1262:寻找素数对

    Description

    哥德巴赫猜想大家都知道一点吧.我们现在不是想证明这个结论,而是想在程序语言内部能够表示的数集中,任意取出一个偶数,来寻找两个素数,使得其和等于该偶数.
    做好了这件实事,就能说明这个猜想是成立的.
    由于可以有不同的素数对来表示同一个偶数,所以专门要求所寻找的素数对是两个值最相近的.

    Input

    输入中是一些偶整数 M(大于5小于等于10000)

    Output

    对于每个偶数,输出两个彼此最接近的素数,其和等于该偶数.

    Sample Input

    20 30 40

    Sample Output

    7 13
    13 17
    17 23

    代码与解释:

    #include<iostream>
    #include<cstdio>
    using namespace std;
    
    int p[10000] = {0};
    int tag[10000] = {0};
    
    void FindPrime(int a){
         int cnt = 0,i;
        for (int i = 2; i < a; i++)
         {
            if (!tag[i])       //tag是标记数组,初始化为0      
                  p[cnt++] = i;    //将数i加入素数数组
            for (int j = 0; j < cnt && p[j] * i < a; j++)
             {
                 tag[i*p[j]] = 1;
                if (i % p[j] == 0) 
                 break;
             }
        } 
    }
    
    void FindResult(int a){
        int i,j,num = 0,flag = 0,num1,num2;
        for(i = 0; i < 10000; i++){
            if(p[i]){
                num++;
            }
        }
        for(i = 0; i < num; i++){
            for(j = i; j < num; j++){
                if((p[i] + p[j]) == a){
                    if(flag){
                        if(p[i] > num1){
                            num1 = p[i];
                        }
                        if(p[j] < num2){
                            num2 = p[j];
                        }
                    }
                    else
                    {
                        num1 = p[i];
                        num2 = p[j];
                        flag = 1;
                    }
                }
            }
        }
        cout << num1 << " " << num2 << endl;
    }
    
    int main(){
        int m;
        while(cin >> m){
            FindPrime(m);
            /*for(int i=0;p[i]!=0;i++){
                cout << p[i] << "  ";
            }*/
            FindResult(m);
        }
        return 0;
    }

    以上代码经Vjudge判定通过

  • 相关阅读:
    Mysql之binlog日志说明及利用binlog日志恢复数据操作记录
    JS使用Cookie
    vue2 生命周期
    vue2 手记
    vue2 design 手记
    composer.json详解
    mysql查询优化
    dockerfile
    一套不错的docker lnmp
    服务器部署docker lnmp环境
  • 原文地址:https://www.cnblogs.com/wlglucky/p/12458764.html
Copyright © 2011-2022 走看看