#include<iostream>
using namespace std;
//判断素回文数
int main()
{
int m, n;
while (cin >> m >> n)
{
int t = 0;//素回文数的计数器
for (int i = m;i <= n;i++)
{
//先判断回文数,求出逆序y,若逆序y等于正序i,则为回文数
int x = i,y=0;
while (x != 0)
{
int a = x % 10;
y = 10 * y + a;
x /= 10;
}
if (y != i)//注意这里不要错写成y和x的比较
continue;//不是回文数,跳进下一循环
else//是回文数,继续判断是否为素数
{
int n = 0;//除1和i本身外的因数计数器
for (int j = 2;j < i;j++)
{
if (i % j == 0)
n++;
}
if (n != 0)
continue;//不是素数,跳进下一循环
else//是素回文数,打印输出,并计数
{
cout << i << endl;
t++;
}
}
}
if (t == 0)
cout << "无\n";
}
}
温馨提示:
对于方案A:先判断回文数,后判断素数
和方案B:先判断素数,后判断回文数,
结果是方案A更加高效省时哦!
感兴趣的小伙伴可以思考一下是为什么