首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >23:区间内的真素数

23:区间内的真素数

作者头像
attack
发布2018-04-11 11:38:39
1.2K0
发布2018-04-11 11:38:39
举报

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 }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-03-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 23:区间内的真素数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档