题目传送门:http://ybt.ssoier.cn:8088/problem_show.php?pid=1408
【AC代码】
#include <bits/stdc++.h>
using namespace std;
//判断是否为素数
bool PrimeCheck(int x){
for(int i=2;i*i<=x;i++){
if(x%i==0){
return false;
}
}
return true;
}
//判断是否为回文数
bool PailindCheck(int n){
int sum=0;
//找一个备份
int a=n;
//反转这个数字
while(a!=0){
sum=sum*10+a%10;
a/=10;
}
//反转后的和原来的相同,就是回文数
if(sum==n){
return true;
}
return false;
}
int n,cnt;
int main(int argc, char** argv) {
cin>>n;
for(int i=11;i<=n;i++){
//计数
if(PrimeCheck(i)&&PailindCheck(i)){
cnt++;
}
}
cout<<cnt<<endl;
return 0;
}