Algorithm/📊 Problem Solving

[백준/BOJ] 1929 - 소수 구하기

posted by sangmin

1929 - 소수 구하기

문제

M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오.

코드

한마디

여태껏 나는 다음과 같은 방식으로 소수를 판별했다.

count = 0 
for i in range(1, N): 
    if N % i == 0: 
        count += 1 
if count == 2: 
    print("Prime number")

소수란 1과 자기 자신 외의 약수를 가지지 않는 1보다 큰 자연수이기 때문에 반복문을 돌며 나누어 떨어지는지를 검사했다. 학교 수업 때도 동일하게 배웠는데, 저렇게 푸니까 시간초과가 떴다.

찾아보니 에라토스테네스의 체라는 개념이 나왔고 이를 이용하여 쉽게 풀 수 있었다.

 

1929번: 소수 구하기

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

www.acmicpc.net

 

'Algorithm > 📊 Problem Solving' 카테고리의 다른 글

[백준/BOJ] 7570 - 줄 세우기  (0) 2021.01.16
[백준/BOJ] 1920 - 수 찾기  (0) 2021.01.16
[백준/BOJ] 1654 - 랜선 자르기  (0) 2021.01.13
[이코테] 미로 탈출  (0) 2021.01.13
[이코테] 음료수 얼려 먹기  (0) 2021.01.13