문제
M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오.
https://www.acmicpc.net/problem/1929
1929번: 소수 구하기
첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.
www.acmicpc.net
import sys
M,N=map(int,sys.stdin.readline().split())
check_prime=[True]*(N+1)
check_prime[1]=False
for x in range(2,N+1):
for y in range(2*x,N+1,x):
if(check_prime[y]==True):
check_prime[y]=False
for x in range(M,N+1):
if(check_prime[x]==True):
print(x)
※ 기본 수학 2

● True로 초기화 된 길이가 N+1인 배열 check_prime을 만들어준다.(현재 확인하는 값을 인덱스와 그대로 비교하기 위해 N+1의 길이 배열 사용.)
● 1은 소수가 아니므로 check_prime[1]의 값은 미리 False로 바꿔준다.
● 2부터 N까지 순회하고, 이 숫자의 배수는 무조건 소수가 아님을 이용하여 이 숫자의 배수를 갖는 인덱스의 요소를 False로 바꾸어준다.
● 마지막에 배열을 돌며 요소가 True인 인덱스를 출력해주면 해결!!



♣ 참고: 에라토스테네스의 체 https://ko.wikipedia.org/wiki/%EC%97%90%EB%9D%BC%ED%86%A0%EC%8A%A4%ED%85%8C%EB%84%A4%EC%8A%A4%EC%9D%98_%EC%B2%B4
에라토스테네스의 체 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 수학에서 에라토스테네스의 체는 소수를 찾는 방법이다. 고대 그리스 수학자 에라토스테네스가 발견하였다. 알고리즘[편집] 2부터 소수를 구하고자 하는 구간
ko.wikipedia.org
'백준(baekjoon) > 실버' 카테고리의 다른 글
백준(baekjoon) 11729번: 하노이 탑(실버 1, 파이썬 PYTHON) - 재귀 (0) | 2022.09.01 |
---|---|
백준(baekjoon) 9020번: 골드바흐의 추측(실버 2, 파이썬 PYTHON) - 기본 수학2 (0) | 2022.09.01 |
백준(baekjoon) 1978번: 소수 찾기(실버 5, 파이썬 PYTHON) - 기본 수학2 (0) | 2022.09.01 |
백준(baekjoon) 2839번: 설탕 배달(실버 4, 파이썬 PYTHON) - 기본 수학1 (0) | 2022.08.31 |
백준(baekjoon) 1316번: 그룹 단어 체커(실버 5, 파이썬 PYTHON) - 문자열 (0) | 2022.08.31 |
문제
M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오.
https://www.acmicpc.net/problem/1929
1929번: 소수 구하기
첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.
www.acmicpc.net
import sys
M,N=map(int,sys.stdin.readline().split())
check_prime=[True]*(N+1)
check_prime[1]=False
for x in range(2,N+1):
for y in range(2*x,N+1,x):
if(check_prime[y]==True):
check_prime[y]=False
for x in range(M,N+1):
if(check_prime[x]==True):
print(x)
※ 기본 수학 2

● True로 초기화 된 길이가 N+1인 배열 check_prime을 만들어준다.(현재 확인하는 값을 인덱스와 그대로 비교하기 위해 N+1의 길이 배열 사용.)
● 1은 소수가 아니므로 check_prime[1]의 값은 미리 False로 바꿔준다.
● 2부터 N까지 순회하고, 이 숫자의 배수는 무조건 소수가 아님을 이용하여 이 숫자의 배수를 갖는 인덱스의 요소를 False로 바꾸어준다.
● 마지막에 배열을 돌며 요소가 True인 인덱스를 출력해주면 해결!!



♣ 참고: 에라토스테네스의 체 https://ko.wikipedia.org/wiki/%EC%97%90%EB%9D%BC%ED%86%A0%EC%8A%A4%ED%85%8C%EB%84%A4%EC%8A%A4%EC%9D%98_%EC%B2%B4
에라토스테네스의 체 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 수학에서 에라토스테네스의 체는 소수를 찾는 방법이다. 고대 그리스 수학자 에라토스테네스가 발견하였다. 알고리즘[편집] 2부터 소수를 구하고자 하는 구간
ko.wikipedia.org
'백준(baekjoon) > 실버' 카테고리의 다른 글
백준(baekjoon) 11729번: 하노이 탑(실버 1, 파이썬 PYTHON) - 재귀 (0) | 2022.09.01 |
---|---|
백준(baekjoon) 9020번: 골드바흐의 추측(실버 2, 파이썬 PYTHON) - 기본 수학2 (0) | 2022.09.01 |
백준(baekjoon) 1978번: 소수 찾기(실버 5, 파이썬 PYTHON) - 기본 수학2 (0) | 2022.09.01 |
백준(baekjoon) 2839번: 설탕 배달(실버 4, 파이썬 PYTHON) - 기본 수학1 (0) | 2022.08.31 |
백준(baekjoon) 1316번: 그룹 단어 체커(실버 5, 파이썬 PYTHON) - 문자열 (0) | 2022.08.31 |