27 lines
776 B
Python
27 lines
776 B
Python
from math import sqrt
|
|
from itertools import product
|
|
|
|
input = (4878, 8704, 7320, 7618, 7964, 5356, 1152, 8566, 5396, 7678, 2818, 1060, 9306, 1362, 7912, 5948, 7974, 3122, 3362, 3620, 3260, 4058, 4710, 7210, 304, 6774, 738, 7644, 928, 2636, 4752, 8564, 2772, 5792, 5120, 2266, 6002, 9020, 8006, 8284, 5730, 5416, 2662, 728, 7050, 8098, 9018, 5806, 5618, 9866)
|
|
|
|
def premiers(n):
|
|
prem=list(range(2,n+1))
|
|
k=2
|
|
nRacine=sqrt(n)
|
|
while k<nRacine:
|
|
prem=[p for p in prem if p<=k or p%k!=0]
|
|
k=prem[prem.index(k)+1] # nouveau nombre premier
|
|
return prem
|
|
|
|
|
|
table = list(product(premiers(max(input)), repeat=2))
|
|
solution = list()
|
|
|
|
for i in input:
|
|
for pair in table:
|
|
if pair[0]+pair[1] == i:
|
|
solution.append(pair)
|
|
break
|
|
|
|
print(solution)
|
|
|