문제 링크
https://www.acmicpc.net/problem/1929
문제
M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다.
(1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.
출력
한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다.
예제
입력
3 16
출력
3
5
7
11
13
정답 및 풀이
import sys
input = sys.stdin.readline
m, n = map(int, input().split())
for i in range(m, n + 1):
if i < 2:
continue
for j in range(2, int(i**0.5) + 1):
if i % j == 0:
break
else:
print(i)
- import sys
- 빠른 입력을 사용하기 위해 sys 모듈을 불러온다.
- input = sys.stdin.readline
- 기본 input()보다 빠른 입력 방식으로 설정한다.
- m, n = map(int, input().split())
- M과 N을 입력받아 정수로 저장한다.
- 문제 조건: M 이상 N 이하 범위의 소수를 출력해야 한다.
- for i in range(m, n + 1):
- M부터 N까지 모든 숫자 i를 검사한다.
- n + 1 을 써야 N도 포함된다.
- if i < 2:
- 0과 1은 소수가 아니므로 바로 건너뛴다.
- for j in range(2, int(i**0.5) + 1):
- i의 약수를 찾기 위해 2부터 √i 까지만 검사한다.
- √i 이상은 검사할 필요가 없다.
- if i % j == 0:
- i가 j로 나누어떨어지면 i는 소수가 아님 → 바로 break.
- else: (for문의 else)
- for문이 끝까지 진행되었고 break가 한 번도 없었다면
- i는 어떤 수로도 나누어지지 않은 소수이다.
- print(i)
- 소수로 판별된 i를 출력한다.
'백준' 카테고리의 다른 글
| [백준] 17103 : 골드바흐 파티션 (Python/파이썬) (0) | 2025.12.10 |
|---|---|
| [백준] 24723 : 녹색거탑 (Python/파이썬) (0) | 2025.12.10 |
| [백준] 4949 : 균형잡힌 세상 (Python/파이썬) (0) | 2025.12.10 |
| [백준] 4948 : 베르트랑 공준 (Python/파이썬) (0) | 2025.12.08 |
| [백준] 9012 : 괄호 (Python/파이썬) (0) | 2025.12.08 |