Python(백준)/기본 수학 2
[백준 파이썬 9020번]골드바흐의 추측★에라토스테네스의 체★소수판별시 루트값 부여하는것
goAhEAd_29
2022. 9. 23. 13:58
728x90
반응형
import sys
import math
def is_prime_num(n):
res=[]
array = []
for i in range(n+1):
array.append(True) #에라토스테네스의 체 사용위해 array에 True값 삽입
array[0] , array[1] = 0 , 0
for j in range(2, int(math.sqrt(n)) +1 ):
if array[j] == True:
k =2
while j*k <= n:
array[j*k] =0 #소수가 아니라면 0이라고 처리한다.
k+=1
res.append(j)
return res #소수만 출력
T = int(sys.stdin.readline())
res = []
for k in range(T):
a = int(sys.stdin.readline())
#res_array = is_prime_num(a)
c,d = a//2 , a//2
while c > 0:
if c in is_prime_num(c) and d in is_prime_num(d):
res.append(f'{c} {d}')
break
else:
c -= 1 #c를 -1
d += 1 #d를 +1 하여 와리가리 하게 할 수 있다.
for i in res:
print(i)
c -=1 과 d+=1 을 기억해서 처리하자.
728x90
반응형