思路:
1.不存在输出FAIL的情况
2.素数打表 实现判断素数 和 查找第i个素数
3.二分查找素数表,从比x大的下一个素数now开始,判断这now-n是否素数
/*Code By Aquariuslt*/
/*HDU 4715 Difference Between Primes*/
#include<iostream>
#include<stdio.h>
#include<string>
#include<algorithm>
#include<string.h>
#include<set>
#include<vector>
#include<queue>
#include<stack>
#include<limits.h>
#include<math.h>
#define FOR(i,a,b) for(int i=(a);i<(b);i++)
#define FORD(i,a,b) for(int i=(a);i<=(b);i++)
#define REP(i,b) FOR(i,0,b)
#define CLR(a) memset(a,0,sizeof(a))
using namespace std;
#define maxn 100010
int pi;
int isprime[maxn],prime[maxn];
void init(){CLR(isprime);isprime[0]=1;isprime[1]=1;for(int i=2;i<maxn;i++){for(int j=2;i*j<maxn;j++){isprime[i*j]=1;}}pi=0;REP(i,maxn){if(isprime[i]==0)prime[pi++]=i;}}
int main(){init();int t;scanf("%d",&t);REP(ti,t){int n;scanf("%d",&n);int *s=upper_bound(prime,prime+pi,n);while(1){int now=*s;if(isprime[now-n]==0){printf("%d %d\n",now,now-n);break;}s++;}}return 0;
}