23:区间内的真素数

23:区间内的真素数

总时间限制: 
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 }

 

posted @ 2017-03-10 19:11  自为风月马前卒  阅读(750)  评论(0编辑  收藏  举报

Contact with me