[백준]베르트랑 공준

Ek·2022년 3월 2일
0

알고리즘

목록 보기
1/3

풀이

1.소수를 구하는 함수를 만든다.
2.n< i <= 2n 의 범위 안에서 소수를 찾으면 count +=1 을 해준다.
3.count를 출력한다.

import math

def num(n):                            # 소수구하는 함수 num
    if n == 1:                         # 1은 소수가 아님.
        return False
    else:                                         #제곱근이 있는 수 중에 
        for i in range(2,int(math.sqrt(n))+1):   
            if n % i == 0:                        #약수가 있으면 false
                return False
        return True
        
all_list = list(range(2, 246912))         #문제에서 제한한 범위
save_list = []                            #빈 리스트 생성
for i in all_list:                        #2부터 2*123,456범위에
    if num(i):                            #num 함수에 해당하면
        save_list.append(i)               #리스트에 추가
        
n = int(input())                          #입력받은 정수 n

while True:
    count = 0                        #소수의 개수
    if n == 0 :                      #0이 입력되면 종료
            break
    for i in save_list:              #save_list에 저장된 소수들 중,
        if n < i <= n*2:             #입력한 값의 범위 내에서 값이 있으면
            count += 1               #있을 때 마다 카운트 +1
    print(count)
    n = int(input())                 #0 입력받기 전까지 계속 해야하므로 
profile
hello~

0개의 댓글