23:区间内的真素数

时间:2022-05-08
本文章向大家介绍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 }