提供一个用bisect模块的新思路
list_prime = [2,3]
def isprime(num):
n = 0
if num > 2:
for i in range(2,int(num**0.5)+1):
if num%i == 0 and i != 1:
n = n+1
break
if n == 0:
return 1
else:
return 0
for i in range(4,1000):
if isprime(i):
list_prime.append(i)
import bisect
while 1:
try:
a = int(input())
place = bisect.bisect(list_prime,a//2)
for i in range(1,place+1):
if isprime(a - list_prime[place-i]):
print(list_prime[place-i])
print(a-list_prime[place-i])
break
except:
break