1411:区间内的真素数
【题目描述】
找出正整数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 <iostream>
using namespace std;
bool isprime(int n){
if (n <= 1)
return false;
for (int i = 2; i * i <=n; i++)
if (n % i == 0)
return false;
return true;
}
int fs(int n){
int sum=0;
while(n){
sum=sum*10+n%10;
n/=10;
}
return sum;
}
bool pd(int n){
return isprime(n) && isprime(fs(n));
}
int main(){
int m,n,f=0;
cin>>m>>n;
for(int i=m;i<=n;i++){
if(pd(i))
if(f) cout<<","<<i;
else {cout<<i;f=1;}
}
if(!f) cout<<"No";
return 0;
}
来源:CSDN
作者:hipoole
链接:https://blog.csdn.net/hipoole/article/details/103827406