xingkongyuan @ 2023-12-05 17:26:06
#使用的是python语言
lis = input().split()
lis = [int(x) for x in lis]
a = lis[0]
b = lis[1]
for i in range(a,b):
if str(i)[-1] == '2' or str(i)[-1] == '4' or str(i)[-1] == '6' or str(i)[-1] == '8' or str(i)[-1] == '0':#筛除所有尾数偶数的数字
continue
if len(str(i)) % 2 == 0 and i != 11:#筛出所有数字的位数是偶数的回文数(因为除了11以外的回文数都不是质数,因为可以整除11)
continue
for k in range(2,i):#判断是否为质数
if i % k == 0 :
break
else:
for j in range(1,len(str(i))):#判断是否为回文数
if str(i)[j - 1] != str(i)[-j]:
break
else:
print(i)
by Terrible @ 2023-12-05 17:38:53
@xingkongyuan
你这个算法用什么语言写都超时吧。
合理的做法是:先枚举所有回文数,在枚举的回文数里挑质数。
by xingkongyuan @ 2023-12-05 17:41:43
@Terrible 谢谢,这就去调试,挨打就立正!
by GPUawa @ 2023-12-05 17:48:28
@xingkongyuan 是这样的,但是你会发现只有66分