将自然数区间[10-1000]中所有绝对素数挑选出来,每行打印输出5个。绝对素数是:一个数和其反序数都是素数,例如13和31都是素数,所以13是绝对素数。
def Prime(START, END):
data = [1] * END
data[:2] = [0, 0]
for idx in range(int(END ** 0.5) + 1):
if idx > 1:
if data[idx] == 1:
for idy, _ in enumerate(data):
if idy > idx and idy % idx == 0:
data[idy] = 0
resu = [idx for idx, v in enumerate(data) if END + 1 > idx > START - 1 and v == 1]
return resu
res = Prime(10, 1000)
ress = [i for i in res if int(str(i)[::-1]) in res]
ii = 0
for i in ress:
if ii % 5 == 0:
print()
print(f'{i:>3}', end = ' ')
ii += 1
'''--result
11 13 17 31 37
71 73 79 97 101
107 113 131 149 151
157 167 179 181 191
199 311 313 337 347
353 359 373 383 389
701 709 727 733 739
743 751 757 761 769
787 797 907 919 929
937 941 953 967 971
983 991 '''