#include <iostream>
using namespace std;
int main() {
int a, b;
int number1, number2;// переменные для хранения текущего числа из промежутка и "зеркального" соответственно
int counter = 0;// счетчик количества "зеркально простых" чисел
cin >> a >> b;
if(a > b){
a += b;
b = a - b;
a -= b;
}// меняем местами границы промежутка, если они введены в неправильном порядке
if (a == 1)
counter--;// декрементируем счетчик, если в промежуток попадает число 1, которое не является простым
for (int i = a; i <= b; i++){
number1 = i;
bool f1 = true;// флаг выполнения условия для number1
bool f2 = true;// флаг выполнения условия для number2
for (int j = 2; j*j <= number1; j++){
f1 = number1%j;
if (!f1)
break;
}// проверяем является ли number1 простым
if (f1){
number2 = 0;
while (number1 > 0){
number2 = number2*10 + number1%10;
number1 /= 10;
}// собираем число "зеркальное" текущему
for (int j = 2; j*j <= number2; j++){
f2 = number2%j;
if (!f2)
break;
}// проверяем является ли number2 простым
if (f2)
counter++;// инкрементируем счетчик
}
}
cout << counter;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwogCmludCBtYWluKCkgewogICAgaW50IGEsIGI7CiAgICBpbnQgbnVtYmVyMSwgbnVtYmVyMjsvLyDQv9C10YDQtdC80LXQvdC90YvQtSDQtNC70Y8g0YXRgNCw0L3QtdC90LjRjyDRgtC10LrRg9GJ0LXQs9C+INGH0LjRgdC70LAg0LjQtyDQv9GA0L7QvNC10LbRg9GC0LrQsCDQuCAi0LfQtdGA0LrQsNC70YzQvdC+0LPQviIg0YHQvtC+0YLQstC10YLRgdGC0LLQtdC90L3QvgogICAgaW50IGNvdW50ZXIgPSAwOy8vINGB0YfQtdGC0YfQuNC6INC60L7Qu9C40YfQtdGB0YLQstCwICLQt9C10YDQutCw0LvRjNC90L4g0L/RgNC+0YHRgtGL0YUiINGH0LjRgdC10LsKICAgIGNpbiA+PiBhID4+IGI7CiAgICBpZihhID4gYil7CiAgICAgICBhICs9IGI7CiAgICAgICBiID0gYSAtIGI7CiAgICAgICBhIC09IGI7CiAgICB9Ly8g0LzQtdC90Y/QtdC8INC80LXRgdGC0LDQvNC4INCz0YDQsNC90LjRhtGLINC/0YDQvtC80LXQttGD0YLQutCwLCDQtdGB0LvQuCDQvtC90Lgg0LLQstC10LTQtdC90Ysg0LIg0L3QtdC/0YDQsNCy0LjQu9GM0L3QvtC8INC/0L7RgNGP0LTQutC1CiAgICBpZiAoYSA9PSAxKSAKICAgICAgICBjb3VudGVyLS07Ly8g0LTQtdC60YDQtdC80LXQvdGC0LjRgNGD0LXQvCDRgdGH0LXRgtGH0LjQuiwg0LXRgdC70Lgg0LIg0L/RgNC+0LzQtdC20YPRgtC+0Log0L/QvtC/0LDQtNCw0LXRgiDRh9C40YHQu9C+IDEsINC60L7RgtC+0YDQvtC1INC90LUg0Y/QstC70Y/QtdGC0YHRjyDQv9GA0L7RgdGC0YvQvAogICAgZm9yIChpbnQgaSA9IGE7IGkgPD0gYjsgaSsrKXsKICAgIAkgbnVtYmVyMSA9IGk7IAogICAgCSBib29sIGYxID0gdHJ1ZTsvLyDRhNC70LDQsyDQstGL0L/QvtC70L3QtdC90LjRjyDRg9GB0LvQvtCy0LjRjyDQtNC70Y8gbnVtYmVyMQogICAgCSBib29sIGYyID0gdHJ1ZTsvLyDRhNC70LDQsyDQstGL0L/QvtC70L3QtdC90LjRjyDRg9GB0LvQvtCy0LjRjyDQtNC70Y8gbnVtYmVyMgogICAgCSBmb3IgKGludCBqID0gMjsgaipqIDw9IG51bWJlcjE7IGorKyl7CiAgICAJCSAgZjEgPSBudW1iZXIxJWo7CiAgICAJCSAgaWYgKCFmMSkgCiAgICAJCSAgICAgIGJyZWFrOwogICAgICAgICB9Ly8g0L/RgNC+0LLQtdGA0Y/QtdC8INGP0LLQu9GP0LXRgtGB0Y8g0LvQuCBudW1iZXIxINC/0YDQvtGB0YLRi9C8CiAgICAgICAgIGlmIChmMSl7CiAgICAJICAgICBudW1iZXIyID0gMDsKICAgIAkgICAgIHdoaWxlIChudW1iZXIxID4gMCl7CgkgICAgICAgICAgICAgICAgbnVtYmVyMiA9IG51bWJlcjIqMTAgKyBudW1iZXIxJTEwOwoJCSAgICAgICAgICAgIG51bWJlcjEgLz0gMTA7CgkJICAgICB9Ly8g0YHQvtCx0LjRgNCw0LXQvCDRh9C40YHQu9C+ICLQt9C10YDQutCw0LvRjNC90L7QtSIg0YLQtdC60YPRidC10LzRgwoJCSAgICAgZm9yIChpbnQgaiA9IDI7IGoqaiA8PSBudW1iZXIyOyBqKyspewoJCQkgICAgICBmMiA9IG51bWJlcjIlajsKICAgIAkJICAgICAgaWYgKCFmMikgCiAgICAJCSAgICAgICAgICBicmVhazsgCiAgICAgICAgICAgICB9Ly8g0L/RgNC+0LLQtdGA0Y/QtdC8INGP0LLQu9GP0LXRgtGB0Y8g0LvQuCBudW1iZXIyINC/0YDQvtGB0YLRi9C8IAogICAgCSAgICAgaWYgKGYyKSAKICAgIAkgICAgICAgICBjb3VudGVyKys7Ly8g0LjQvdC60YDQtdC80LXQvdGC0LjRgNGD0LXQvCDRgdGH0LXRgtGH0LjQuiAKICAgICAgICAgfQogICAgfQogICAgY291dCA8PCBjb3VudGVyOwoJcmV0dXJuIDA7Cn0=