【题目描述】
求11到n之间(包括n),既是素数又是回文数的整数有多少个。
【输入】
一个大于11小于1000的整数n。
【输出】
11到n之间的素数回文数个数。
【输入样例】
23
【输出样例】
1
【提示】
提示:
回文数指左右对称的数,如:292,333。
#include <iostream>
#include <cmath>
using namespace std;
bool isPrime(int n)//判断n是否是质数
{
for(int i = 2; i <= sqrt(n); ++i)
if(n % i == 0)
return false;
return true;
}
bool isPal(int n)//判断两位或三位数n是否是回文数
{//判断最高位与最低位是否相等
int g, d;//g:最高位 d:最低位
for(int a = n; a > 0; a /= 10)
g = a % 10;
d = n % 10;
return g == d;
}
int main()
{
int n, s = 0;//s:计数
cin >> n;
for(int i = 11; i <= n; ++i)
{
if(isPrime(i) && isPal(i))
s++;
}
cout << s;
return 0;
}