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 밖에 약수가 없는 수 인데, 모든 수를 돌면서 나누어 떨어지는 지 확인하지 않고 해당 수의 제곱근까지만 나눠보면 된다. 약수는 대칭으로 이루어져 있기 때문에 제곱근보다 같거나 작은 수 까지만 나눠보면 되기 때문이다.
'코딩테스트 문제풀이(Python)' 카테고리의 다른 글
프로그래머스 행렬의 덧셈 문제풀이 (파이썬) (0) | 2022.06.25 |
---|---|
백준 4948번 문제풀이 (파이썬) (0) | 2022.06.24 |
백준 10250번 문제풀이 (파이썬) (0) | 2022.06.11 |
백준 1978번 문제풀이 (파이썬) (0) | 2022.06.11 |
백준 2941번 문제풀이 (파이썬) (0) | 2022.06.06 |