总时间限制: 1000ms 内存限制: 65536kB描述
找出正整数 M 和 N 之间(N 不小于 M)的所有真素数。 真素数的定义:如果一个正整数 P 为素数,且其反序也为素数,那么 P 就为真素数。 例如,11,13 均为真素数,因为11的反序还是为11,13 的反序为 31 也为素数。
输入输入两个数 M 和 N,空格间隔,1 <= M <= N <= 100000。输出按从小到大输出 M 和 N 之间(包括 M 和 N )的真素数,逗号间隔。如果之间没有真素数,则输出 No。样例输入
10 35
样例输出
11,13,17,31
来源元培-From Whf
1 #include<iostream>
2 #include<cmath>
3 #include<cstring>
4 #include<cstdio>
5 #include<algorithm>
6 using namespace std;
7 int flag=0;
8 bool vis(int n)
9 {
10 for(int k=2;k<n-1;k++)
11 {
12 if(n%k==0)
13 {
14 return 0;
15 }
16 }
17 return 1;
18 }
19 int main()
20 {
21 int m,n;
22 cin>>m>>n;
23 for(int i=m;i<=n;i++)
24 {
25 char bc[1001];
26 int a=i;
27 if(vis(a)==0)
28 continue;
29 else
30 {
31 char ans[101];
32 int now=0;
33 sprintf(bc,"%d",a);
34 int l=strlen(bc);
35 int pd;
36 for(int j=l-1;j>=0;j--)
37 {
38 ans[now]=bc[j];
39 now++;
40 }
41 //sscanf(pd,"%d",&ans);
42 pd=atoi(ans);
43 if(vis(pd)==0)
44 continue;
45 else
46 {
47 if(flag==0)
48 {
49 cout<<a;
50 flag=1;
51 }
52 else
53 {
54 cout<<","<<a;
55 }
56 }
57
58 }
59 }
60 if(flag==0)
61 cout<<"No";
62 return 0;
63 }