23.区间内的真素数
作者:互联网
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