백준 1929 파이썬 에라토스테네스 체
2024. 5. 27. 06:58ㆍ코딩 도구/백준
반응형
백준 1929 - 소수 구하기
문제
https://www.acmicpc.net/problem/1929
답안 코드 :
import math
M, N = map(int, input().split())
A = [0] * (N + 1)
for i in range(2, N + 1):
A[i] = i
for i in range(2, int(math.sqrt(N)) + 1): # 제곱근까지만 수행
if A[i] == 0:
continue
for j in range(i + i, N + 1, i): # 배수 지우기
A[j] = 0
for i in range(M, N + 1):
if A[i] != 0:
print(A[i])
생각 :
# 문제 분석
# 숫자 사이 소수 출력 문제
# N의 최대 범위가 1,000,000이라서 일반적인 소수 구하기 방식 x
# 에라토스테네스 방법
# *일반적인 방법 소수를 찾을 때
# 2이상부터 자기 자신보다 작은 수로 나눴을 때 나머지가 0이 아닌 수
# 문제 풀이
# 크기 N + 1인 리스트를 선언
# 값은 인덱스 값으로 채우기 (소수 구하기에서 0번쨰 배열 사용 x)
# 1은 소수 아니라 삭제
# 2부터 N의 제곱근까지 탐색
# 값이 인덱스 값이면 그대로, 그 값의 배수를 탐색해 0으로 변경
# 배열에 남은 숫자 중 M이상 N이하의 수 모두 출력
정수론 정리 글들
https://mkisos.tistory.com/entry/%EC%A0%95%EC%88%98%EB%A1%A0-%EC%98%A4%EC%9D%BC%EB%9F%AC-%ED%94%BC
반응형
'코딩 도구 > 백준' 카테고리의 다른 글
백준 1747 파이썬 에라토스테네스의 체를 이용 팰린드롬 (20) | 2024.05.29 |
---|---|
백준 1456 파이썬 거의 소수 (1) | 2024.05.28 |
백준 1541 파이썬 그리디 생각해내기 (22) | 2024.05.26 |
백준 1931 파이썬 회의실 배정 (24) | 2024.05.25 |
백준 1744 파이썬 음수의 집합 고려 (0) | 2024.05.24 |