题目描述:
求[l,r]之间既是素数又是回文数的整数有多少个。
输入
一行包含两个正整数l,r(2<=l<=r<=10000)
输出
输出素数回文数的个数。
解题思路:
先判断是否是素数,如果是素数继续判断是否是回文数,符合条件计数器加加
代码:
#include <iostream>
#include <math.h> //sqrt函数的头文件
using namespace std;
int aaa(int i) //判断是否是素数的函数,是就返回该数,不是返回0
{
for (int j = 2; j <= sqrt(i); j++)
{
if (i % j == 0)
{
return 0;
}
}
return i;
}
int main()
{
int n, m;
cin >> n >> m;
int count = 0;
for (int i = n; i <= m; i++)
{
int d = aaa(i);
if (d)
{
int f = d;
int z = 0;
while (f > 0) //翻转素数
{
z = z * 10 + f % 10;
f /= 10;
}
if (z == d) //判断翻转后的数是否相等,相等则为回文数
{
count++;
}
}
}
cout << count;
}