아이공의 AI 공부 도전기

[Baekjoon] 4948번 : 베르트랑 공준 (Python, 소수)

 

     

 

 

https://www.acmicpc.net/problem/4948

 

4948번: 베르트랑 공준

베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼

www.acmicpc.net

 

코드 링크

https://github.com/stellaluminary/Baekjoon

 

GitHub - stellaluminary/Baekjoon

Contribute to stellaluminary/Baekjoon development by creating an account on GitHub.

github.com

 

Python

 

시간 초과 - 방법 1 -  코드 길이 307B

 

def prime(k):
    if k == 1:
        return 0

    for i in range(2, int(k ** 0.5) + 1):
        if k % i == 0:
            return 0
    return 1

while 1:
    n = int(input())

    if n == 0:
        break
    cnt = 0
    for i in range(n+1, 2*n+1):
        if prime(i):
            cnt += 1
    print(cnt)

 

방법 2 - 메모리 30840KB / 시간 920ms / 코드 길이 438B

 

def prime(k):
    if k == 1:
        return 0

    for i in range(2, int(k ** 0.5) + 1):
        if k % i == 0:
            return 0
    return 1

prime_list = []

for i in range(2,123456*2+1):
    if prime(i):
        prime_list.append(i)

while 1:
    n = int(input())

    if n == 0:
        break
    cnt = 0
    for i in prime_list:
        if i > 2*n:
            break
        elif n < i <= 2*n:
            cnt += 1
    print(cnt)

 

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading