Qiqi_Hun @ 2023-07-12 19:08:10
#include <bits/stdc++.h>
using namespace std;
int a,b;
bool isprime(int x)//判断素数
{
for(int i=2;i*i<=x;i++)
{
if(x%i==0)
{
return false;
}
}
return true;
}
bool ispn(int n)//判断回文数
{
int x=0,s=n;//拷贝一份
while(s>0)//各个数位上的数正着加起来跟逆着加起来的和是一样的
{
x=x*10+s%10;
s/=10;
}
if(x==n)
{
return true;
}else
{
return false;
}
}
int main()
{
cin>>a>>b;
for(int i=a;i<=b;i++)//没有偶数的回文质数
{
if(i%2==0)
{
continue;
}else if(isprime(i)&&ispn(i))
{
cout<<i<<endl;
}
}
return 0;
}
by zvzbpkvo1 @ 2023-07-16 15:31:35
先把isprime(i)&&ispn(i)的顺序改一下(题目提示)
然后开O2就能ac了
by lijuncheng_1207 @ 2023-07-27 18:01:09
@zvzbpkvo1 最后一个点还是TLE
#include <bits/stdc++.h>
using namespace std;
int n,m,cnt;
bool prime(int x){
for(int i=2;i<=sqrt(x);i++) {
if(x%i==0)
return 0;
}
return 1;
}
bool flag(int x){
string s=to_string(x);
string s1=s;
reverse(s.begin(),s.end());
if(s1==s){
return 1;
}
return 0;
}
int main(){
std::ios::sync_with_stdio(false);
std::cin.tie(0),cout.tie(0);
cin>>n>>m;
for(int i=n;i<=m;i++) {
if(flag(i)&&prime(i)){
cout<<i<<endl;
}
}
return 0;
}
by zvzbpkvo1 @ 2023-07-28 18:09:28
#include <bits/stdc++.h>
using namespace std;
int n,m;
bool prime(int x){
for(int i=2;i<=sqrt(x);i++) {
if(x%i==0)
return 0;
}
return 1;
}
bool flag(int n){
int x=0,s=n;
while(s>0){
x=x*10+s%10;
s/=10;
}
if(x==n){
return true;
}else{
return false;
}
}
int main(){
std::ios::sync_with_stdio(false);
std::cin.tie(0),cout.tie(0);
cin>>n>>m;
for(int i=n;i<=m;i++) {
if(flag(i)&&prime(i)){
cout<<i<<endl;
}
}
return 0;
}