1.5.3

来源:互联网 发布:编程思想训练 编辑:程序博客网 时间:2024/04/30 13:54
/*ID:18861501LANG:C++TASK:sprime*//*------------------Header Files------------------*/#include <iostream>#include <cstring>#include <string>#include <cstdio>#include <algorithm>#include <cstdlib>#include <ctype.h>#include <cmath>#include <stack>#include <queue>#include <map>#include <vector>#include <limits.h>using namespace std;/*------------------Definitions-------------------*/#define LL long long#define PI acos(-1.0)#define INF 0x3F3F3F3F/*---------------------Work-----------------------*/int s[100000];int num[]={0,1,3,7,9};bool is_prime(int n){int m=sqrt(n+0.5);for(int i=2;i<=m;i++)if(n%i==0) return false;return true;}void work(){int i=5,d1=1,d2=5,d3,d4,d5,d6,d7,d8;s[1]=2,s[2]=3,s[3]=5,s[4]=7;for(int j=d1;j<d2;j++)for(int k=1;k<=4;k++)if(is_prime(s[j]*10+num[k]))s[i++]=s[j]*10+num[k];d3=i;for(int j=d2;j<d3;j++)for(int k=1;k<=4;k++)if(is_prime(s[j]*10+num[k]))s[i++]=s[j]*10+num[k];d4=i;for(int j=d3;j<d4;j++)for(int k=1;k<=4;k++)if(is_prime(s[j]*10+num[k]))s[i++]=s[j]*10+num[k];d5=i;for(int j=d4;j<d5;j++)for(int k=1;k<=4;k++)if(is_prime(s[j]*10+num[k]))s[i++]=s[j]*10+num[k];d6=i;for(int j=d5;j<d6;j++)for(int k=1;k<=4;k++)if(is_prime(s[j]*10+num[k]))s[i++]=s[j]*10+num[k];d7=i;for(int j=d6;j<d7;j++)for(int k=1;k<=4;k++)if(is_prime(s[j]*10+num[k]))s[i++]=s[j]*10+num[k];d8=i;for(int j=d7;j<d8;j++)for(int k=1;k<=4;k++)if(is_prime(s[j]*10+num[k]))s[i++]=s[j]*10+num[k];int N;scanf("%d",&N);switch(N){case 1:for(int j=d1;j<d2;j++) printf("%d\n",s[j]);break;case 2:for(int j=d2;j<d3;j++) printf("%d\n",s[j]);break;case 3:for(int j=d3;j<d4;j++) printf("%d\n",s[j]);break;case 4:for(int j=d4;j<d5;j++) printf("%d\n",s[j]);break;case 5:for(int j=d5;j<d6;j++) printf("%d\n",s[j]);break;case 6:for(int j=d6;j<d7;j++) printf("%d\n",s[j]);break;case 7:for(int j=d7;j<d8;j++) printf("%d\n",s[j]);break;case 8:for(int j=d8;j<i;j++) printf("%d\n",s[j]);break;}}/*------------------Main Function------------------*/int main(){//freopen("test.txt","r",stdin);freopen("sprime.out","w",stdout);freopen("sprime.in","r",stdin);work();return 0;}

0 0