#include <bits/stdc++.h>
using namespace std;
bool play(int n)
{
int m=n,k=0;
while(m)
{
int t=m%10;
k=k*10+t;
m/=10;
}
if(k==n)
{
return 1;//是回文数
}
return 0;
}
bool judge(int n)
{
if(n==2)
{
return 1;//是质数
}
//for(int i=2,i<=sqrt(n);i++) 更费时间
int k=sqrt(n);
for(int i=2;i<=k;i++)
{
if(n%i==0)
{
return 0;//不是质数
}
}
return 1;//是质数
}
int main()
{
int a,b; cin>>a>>b;
//b在一亿之内,最大的回文质数是9989899(自己测)
if(b>=9999999) b=9999999; //最大的回文质数处理
for(int i=a;i<=b;i++)
{
//先判断回文数在判断质数更省时间
if(play(i)==1)
{
if(judge(i)==1)
{
cout<<i<<endl;
}
}
//均超时
// if(judge(i)==1 && play(i)==1)
// {
// cout<<i<<endl;
// }
// if(judge(i)==1)
// {
// if(play(i)==1)
// {
// cout<<i<<endl;
// }
// }
}
return 0;
}
洛谷P1217 [USACO1.5] 回文质数 Prime Palindromes
于 2023-08-13 21:28:13 首次发布