본문 바로가기
코딩테스트 문제풀이(Python)

백준 1929번 문제풀이 (파이썬)

by chanfficial 2022. 6. 24.

1929. 소수 구하기

 

 

M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오.

 

 

입력 : 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.

출력 : 한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다.

 

 

ex)

입력 :

3 16

출력 :

3
5
7
11
13

 

 

 

 

풀이

m, n = map(int, input().split())

for i in range(m, n+1):
    if i == 1: 
        continue
    for j in range(2, int(i** 0.5)+1 ):
        if i % j==0:
            break
    else:
        print(i)

- 소수는 자신과 1 밖에 약수가 없는 수 인데, 모든 수를 돌면서 나누어 떨어지는 지 확인하지 않고 해당 수의 제곱근까지만 나눠보면 된다. 약수는 대칭으로 이루어져 있기 때문에 제곱근보다 같거나 작은 수 까지만 나눠보면 되기 때문이다.