https://www.acmicpc.net/problem/9020
처음 코드 - 또 시간 초과,,,,,,,,
숫자를 처음부터 넣어서 차이값을 비교했었다
num = []
for i in range(2, 10000):
cnt = 0
for p in range(2, int(i**0.5)+1):
if i % p == 0:
cnt += 1
break
if cnt == 0:
num.append(i)
t = int(input())
for i in range(t):
n = int(input())
d = n
for j in num:
if j in range(n//2+1):
if n - j in num:
if n - j - j < d:
d = n - j - j
else:
break
print((n-d)//2,n-(n-d)//2)
이번엔 그래서 아예 중간값부터 넣었다
그러면 차이가 가장 작은 것부터 시작하니까 차이값을 비교할 필요가 없다!
num = []
for i in range(2, 10000):
cnt = 0
for p in range(2, int(i**0.5)+1):
if i % p == 0:
cnt += 1
break
if cnt == 0:
num.append(i)
t = int(input())
for i in range(t):
n = int(input())
a = n//2
b = a
while a > 0:
if a in num and b in num:
print(a, b)
break
else:
a -= 1
b += 1
'알고리즘 > 백준' 카테고리의 다른 글
백준 3009: 네 번째 점 (Python) (0) | 2021.09.02 |
---|---|
백준 1085: 직사각형에서 탈출 (Python) (0) | 2021.09.02 |
백준 4948: 베르트랑 공준 (Python) (1) | 2021.09.01 |
백준 1929: 소수 구하기 (Python) (0) | 2021.08.31 |
백준 11653: 소인수분해 (Python) (0) | 2021.08.31 |