ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

23.区间内的真素数

2021-07-30 16:04:56  阅读:127  来源: 互联网

标签:11 输出 13 23 int 反序 素数 区间


23:区间内的真素数

描述

找出正整数 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

代码

#include<bits/stdc++.h>
using namespace  std;

bool isprime(int n);
int change(int n); //反序

int main()
{
    int M , N;
    cin >> M >> N;
    int flag=0;
    for(int i=M;i<=N;i++)
    {
        if(isprime(i) && isprime(change(i)))
        {
            if(!flag)
            {
                cout << i;
                flag=1;
            }
            else{
                cout << "," << i;
            }
        }
    }
    if(!flag)
        cout << "No" << endl;
    return 0;
}

bool isprime(int n)
{
    if(n==1)
        return false;
    for(int i=2;i<=sqrt(n);i++)
    {
        if(n%i==0)
            return false;
    }
    return true;
}

int change(int n)
{
    int sum=0;
    int a[7];
    int i=0;
    while(n)
    {
        a[i++]=n%10;
        n/=10;
    }
    int temp=1;
    for(int j=i-1;j>=0;j--)
    {
        while(a[j])
        {
            for(int k=j;k>=0;k--)
            {
                sum+=temp*a[k];
                temp*=10;
            }
            return sum;
        }
    }
}

标签:11,输出,13,23,int,反序,素数,区间
来源: https://www.cnblogs.com/jifenxiaobawang/p/15080014.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有