#include <stdio.h>
#include <string.h>
#include <math.h>
int reverse(int b)
{
int a = 0, i = 0, j = 0, l = b;
int d = b;
while (b != 0)//判断位数
{
b = b / 10;
j++;
l = 0;
}
int c = j - 1;//位数减一得要乘的十的次方
int k = 0;
for (i = 0; i < j; i++)
{
//k = d % 10;
//k = pow(10, c);
k = (d % 10) *pow(10,c);
d /= 10;//让d越来越小
c--;
l += k;
}
return l;
}
int is_prime(int n)
{
int i = 0;
for (i = 2; i <= sqrt(n); i++)//记得加=,因为开平方之后的数如果是整数就不是质数
{
if (n % i == 0)
{
return 0;
}
}
if (n == 1)
{
return 0;
}
return 1;
}
int main()
{
int m, n, j, k = 0, i;
int a[100000];
scanf("%d%d", &m, &n);
for (i = m; i <= n; i++)
{
if (is_prime(i) == 1)
{
if (is_prime(reverse(i)) == 1)//将素数反向输出再判断,是不是真素数
{
a[k] = i;
k++;
}
}
}
for (i = 0; i < k; i++)
{
printf("%d", a[i]);
if (i < k - 1)
{
putchar(',');
}
}
if (k == 0)
{
printf("No");
}
return 0;
}