J.Emirp

来源:互联网 发布:西安广电网络宽带资费 编辑:程序博客网 时间:2024/05/22 13:47
J.EmirpTime Limit: 5000 MSMemory Limit: 100000 KTotal Submit: 1195 (392 users)Total Accepted: 275 (264 users)Special Judge: NoDescription

An emirp (prime spelled backwards) is a prime number that results in a different prime when its decimal digits are reversed.

The first five emirps are 13, 17, 31, 37, 71

Now Kim want to know the kth emirp. Help him.

Input

The first line is an integer T, describes the number of tests. Then T tests.

In each test, one line an integer k.

Output

For each test, output the kth emirp.

Sample Input
3123
Sample Output
131731
Hint

T<=10000

k<=1000 

打表

#include<cstdio>#include<cstring>#define maxn 1000000int num[maxn+11];int nas[1200]; void Init() {int i,j;memset(num,0,sizeof(num));num[0]=num[1]=1;for(i=2;i<maxn+11;++i){if(!num[i]) {for(j=i*2;j<maxn+11;j+=i)num[j]=1; } }int k=1;for(i=13;i<maxn+11;++i){if(k>1000)break; if(!num[i]){int sum=0,temp=i;;while(temp){sum=sum*10+temp%10;temp/=10; } if(!num[sum]&&i!=sum)nas[k++]=i; } } } int main(){Init();int t;scanf("%d",&t);while(t--){int pos;scanf("%d",&pos);printf("%d\n",nas[pos]); } return 0;}


0 0
原创粉丝点击