Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 블록체인
- java.lang.IllegalStateException
- 코틀린
- 포너블
- kotlin
- UNIQUE constraint failed
- 클라우드란?
- 액션바 필요없숴
- pwnable
- Make sure the Cursor is initialized correctly before accessing data for it.
- col -1 from CursorWindow
- cmd2
- Drive-By-Download
- 나이순 정렬
- Couldn't read row 0
- python
- pwnable.kr
- cmd1
- 10814
- 파이썬
- tlqkf
- 6566
- 클라우드가 뭐야
- pwable.kr
- 백준
- Docker
- 쏘큩
- SQLiteConstraintException
- 애너그램 그룹
- 페니빙
Archives
- Today
- Total
푸르미르
[python]9020.골드바흐의 추측 본문
문제에서 골드바흐 파티션이 여러가지인 경우 두소수의 차이가 가장 작은 것을 출력하라 했다. 즉 입력값이 16일 경우, 16= 11+5 =13+ 3으로 2가지의 골드바흐 파티션이 있는데 11-5<13-3이므로 11 5로 출력해야 한다는 뜻이다. 짝수는 같은 수 2개로 이루어질 수 있다. 무슨 뜻이냐면 예를 들어 4= 2+2, 10=5+5, 12=6+6 이런식으로 말이다. 이것을 이용하여 앞의 수는 1씩 감소시키고, 뒤의 수는 1씩 증가시키면 소수인데 차이가 가장 작은것을 제일 먼저 만나 이를 출력하기만 하면 된다. 그렇게 해서 코드르 짜면
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
def isPrime(num):
if num==0 or num==1:
return False
for i in range(2, int(num**0.5)+1):
if num%i==0:
return False
return True
test=int(input())
j=0
while j<test:
up=down=0
even=int(input())
j+=1
up=down=int(even/2)
while(down!=0):
if isPrime(up) and isPrime(down): #둘 다 소수일 때
print(str(down)+" "+ str(up))
break
else:
up+=1
down-=1
|
cs |
'Baekjoon Online Judge' 카테고리의 다른 글
[python]10814.나이순 정렬 (4) | 2021.02.03 |
---|---|
[python]6566.애너그램 그룹 (0) | 2021.01.27 |
[python]4948.베르트랑 공준 (0) | 2021.01.21 |
[python]1929.소수 구하기 (0) | 2021.01.18 |
[python]10757.큰 수 A+B (0) | 2021.01.15 |