#对于下列的一组数字,筛选出能够分解成两个质数之和的,如9可以分解为2+7,而11则无法分解成两个质数之和
#5, 6, 8, 13, 14, 15, 16, 17, 20, 21, 24, 26, 27, 30
from math import *
#找出30以内的质数
prime = [ ]
for x in range(2,30):
n = int(sqrt(x)) + 1
for y in range(2,n+1):
if y == n:
prime.append(x)
if x % y == 0:
break
#筛选出分解成两个质数之和的数
out = [ ]
number = [5,6,8,13,14,15,16,17,20,21,24,26,27,30]
for num in number:
for i in prime:
for j in prime:
if num == i + j:
#print(num,'=',i,'+',j)
out.append(num)
#去除重复的元素
i = 0
print(out)
while i < len(out):
if i + 1 >= len(out):
break
if out[i] == out[i+1]:
del out[i+1]
continue
else:
i += 1
print(out)
|