总时间限制: 1000ms 内存限制: 65536kB描述
求11到n之间(包括n),既是素数又是回文数的整数有多少个。
输入一个大于11小于1000的整数n。输出11到n之间的素数回文数个数。样例输入
23
样例输出
1
提示回文数指左右对称的数,如:292,333。来源06计算概论课
1 #include<iostream>
2 #include<cstdio>
3 #include<queue>
4 #include<cmath>
5 using namespace std;
6 int ans[10001];
7 int now;
8 int tot;
9 int vis[10001];
10 int main()
11 {
12 int n;
13 cin>>n;
14 for(int i=2;i<=sqrt(n+0.5);i++)
15 {
16 if(vis[i]==0)
17 {
18 for(int j=i*i;j<=n;j=j+i)
19 vis[j]=1;
20 }
21 }//筛法求素数
22 for(int i=11;i<=n;i++)
23 {
24 if(vis[i]==1)
25 {
26 continue;
27 }
28 else
29 {
30 int t=i;
31 int g=t%10;
32 t=t/10;
33 int s=t%10;
34 if(t/10==0)
35 {
36 if(g==s)
37 tot++;
38 }
39 else
40 {
41 t=t/10;
42 int b=t%10;
43 if(g==b)
44 tot++;
45 }
46
47 }
48 }
49 cout<<tot;
50 return 0;
51 }