본문 바로가기

개발/algorithm

[백준 1929번] 소수 구하기 -python

문제링크

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

 

1929번: 소수 구하기

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

www.acmicpc.net

 

풀이 

- 소수인지 판별하는 함수 외워두자 ! 

- i가 소수인지 판별하기 위해서는 2부터 i-1까지 나누어 떨어지는 수가 있는지 확인하면 되는데, 범위에 해당하는 모든 수에 대해서 검사할 필요 없이 약수는 대칭으로 이루어져 있기 때문에 i의 제곱근까지만 검사해보면 된다. 

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)