python 代码
a,b = map(int,input().split())
if b > 10000000:
b = 10000000
def get_primes(n):
primes = []
cnt = 0
minp = [0] * (n + 1)
st = [False] * (n + 1)
for i in range(2,n + 1):
if st[i] == False:
primes.append(i)
cnt = cnt + 1
# minp[i] = i
j = 0
while j < cnt and primes[j] * i <= n:
t = primes[j] * i
# minp[t] = primes[j]
st[t] = True
if i % primes[j] == 0:
break
j = j + 1
return primes
long = get_primes(b)
# 检查一个数是否为回文数
def check(x):
y = str(x)
return y == y[::-1]
for num in long:
if check(num) and num >= a:
print(num)
# 代码2:
# # # 定义最大范围
# N = 10000010
# # 读取输入的左右边界
# l, r = map(int, input().split())
# # 确保右边界不超过最大范围
# if r > 10000000:
# r = 10000000
# # 初始化存储素数的列表和标记数组
# primes = []
# st = [False] * N
# cnt = 0
# # 生成素数的函数
# def getPrime():
# global cnt
# for i in range(2, r + 1):
# if not st[i]:
# primes.append(i)
# cnt += 1
# j = 0
# while j < cnt and primes[j] <= r // i:
# st[primes[j] * i] = True
# if i % primes[j] == 0:
# break
# j += 1
# # 检查一个数是否为回文数的函数
# def check(x):
# s = str(x)
# return s == s[::-1]
# # 生成素数
# getPrime()
# # 遍历素数列表,输出在指定范围内的回文素数
# for prime in primes:
# if l <= prime <= r and check(prime):
# print(prime)