题目传送门

题目的提示已经非常明显了,可以先生成回文数再判断质数,因为生成回文数的复杂度较小。判断质数用了之前学到的那种做法。

其实可以用一些比较优秀的筛质数的方法,再判断回文数。

 1 /*
 2 ID: Starry21
 3 LANG: C++
 4 TASK: numtri                 
 5 */  
 6 #include<iostream>
 7 #include<string>
 8 #include<cstdio>
 9 #include<cstring>
10 #include<vector>
11 #include<algorithm>
12 #include<cmath>
13 using namespace std;
14 #define N 1005
15 #define ll long long
16 #define INF 0x3f3f3f3f
17 int a,b;
18 bool pd(int x)
19 {
20     if(x==1) return 0;
21     if(x==2||x==3) return 1;
22     if(x%6!=1&&x%6!=5) return 0;
23     int s=sqrt(x);
24     for(int i=5;i<=s;i+=6)
25         if(x%i==0||x%(i+2)==0)
26             return 0;
27     return 1;
28 }
29 int main() 
30 {
31     //freopen("numtri.in","r",stdin);
32     //freopen("numtri.out","w",stdout);
33     scanf("%d %d",&a,&b);
34     if(a<10)
35     {
36         if(a<=2) puts("2");
37         if(a<=3) puts("3");
38         if(a<=5) puts("5");
39         if(a<=7) puts("7"); 
40     }
41     if(a<=11) puts("11");
42     if(a<999)
43     {
44         for(int i=1;i<=9;i+=2)
45             for(int j=0;j<=9;j++)
46             {
47                 int t=i*100+j*10+i;
48                 if(pd(t)&&a<=t&&t<=b) 
49                     printf("%d\n",t);
50             }
51     }
52     if(a<99999)
53     {
54         for(int i=1;i<=9;i+=2)
55             for(int j=0;j<=9;j++)
56                 for(int k=0;k<=9;k++)
57                 {
58                     int t=i*10000+j*1000+k*100+j*10+i;
59                     if(pd(t)&&a<=t&&t<=b)
60                         printf("%d\n",t);
61                 }
62     }
63     if(a<9999999)
64     {
65         for(int i=1;i<=9;i+=2)
66             for(int j=0;j<=9;j++)
67                 for(int k=0;k<=9;k++)
68                     for(int q=0;q<=9;q++)
69                     {
70                         int t=i*1000000+j*100000+k*10000+q*1000+k*100+j*10+i;
71                         if(pd(t)&&a<=t&&t<=b)
72                             printf("%d\n",t);
73                     }
74     }
75     return 0;
76 }
Code

相关文章: