程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> hdu4715之素數篩選

hdu4715之素數篩選

編輯:C++入門知識

Difference Between Primes Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 673    Accepted Submission(s): 216     Problem Description All you know Goldbach conjecture.That is to say, Every even integer greater than 2 can be expressed as the sum of two primes. Today, skywind present a new conjecture: every even integer can be expressed as the difference of two primes. To validate this conjecture, you are asked to write a program.     Input The first line of input is a number nidentified the count of test cases(n<10^5). There is a even number xat the next nlines. The absolute value of xis not greater than 10^6.     Output For each number xtested, outputstwo primes aand bat one line separatedwith one space where a-b=x. If more than one group can meet it, output the minimum group. If no primes can satisfy it, output 'FAIL'.     Sample Input 3 6 10 20     Sample Output 11 5 13 3 23 3     Source 2013 ACM/ICPC Asia Regional Online —— Warmup

#include<iostream>  
#include<cstdio>  
#include<cstdlib>  
#include<cstring>  
#include<string>  
#include<queue>  
#include<algorithm>  
#include<map>  
#include<iomanip>  
#define INF 99999999  
using namespace std;  
  
const int MAX=1000000+10;  
bool prime[MAX];  
int s[200]={2},size;  
  
void Prime(){//素數篩選   
    for(int i=2;2*i<MAX;++i)prime[2*i]=true;  
    for(int i=3;i*i<MAX;i+=2){  
        if(!prime[i]){  
            s[++size]=i;  
            for(int j=i*i;j<MAX;j+=i)prime[j]=true;  
        }  
    }  
}  
  
int main(){  
    Prime();  
    int t,n,m,i;  
    scanf("%d",&t);  
    while(t--){  
        scanf("%d",&n);  
        m=n>0?n:-n;  
        for(i=0;i<=size;++i){  
            if(!prime[s[i]+m])break;  
        }  
        if(n>0)printf("%d %d\n",s[i]+m,s[i]);  
        else printf("%d %d\n",s[i],s[i]+m);  
    }  
    return 0;  
}  

 


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved