资源限制
内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s
一个数如果从左往右读和从右往左读数字是完全相同的,则称这个数为回文数,比如898,1221,15651都是回文数。编写一个程序,输入两个整数min和max,然后对于min~max之间的每一个整数(包括min和max),如果它既是一个回文数又是一个质数,那么就把它打印出来。要求,回文数和质数的判断都必要要用函数的形式来实现。
输入:
5 100
输出:
5 7 11
#include<iostream>
#include<string>
#include<stack>
using namespace std;
bool huiwen(int n){
int x=n,y=0;
string s;
while(x){
y=x%10;
s=s+char(y);
x=x/10;
}
stack<char> st;
for(int i=0;i<s.length()/2;i++){
st.push(s[i]);
}
char c;
for(int i=s.length()/2+s.length()%2;i<s.length();i++){
c=st.top();
st.pop();
if(s[i]!=c) return false;
}
return true;
}
bool isprime(int n){
if(n<2) return false;
for(int i=2;i<=n/i;i++){
if(n%i==0) return false;
}
return true;
}
int main(){
int n,m;
cin>>n>>m;
for(int i=n;i<=m;i++){
if(isprime(i)&&huiwen(i)){
cout<<i<<" ";
}
}
return 0;
}