Algorithm/Math

(Python) - BOJ(1929번) : 소수 구하기

하눤석 2022. 1. 28. 15:41
728x90

https://www.acmicpc.net/problem/1929

 

1929번: 소수 구하기

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

www.acmicpc.net

 


  • 해설 : 

M이상 N이하의 소수를 모두 출력하는 문제이다.

 

 

 

 


  • 풀이 :

M부터 N까지의 모든 수를 소수인지 체크한다. 이 때, 소수판별함수에서 숫자가 X라면 X의 제곱근까지만 검사하면 된다.

 

 

 

 


  • 소스코드 : 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import sys
input = sys.stdin.readline
 
if __name__ == "__main__":
    N,M = map(int,input().split())
    ans = []
    for i in range(N,M+1):
 
        flag = True
        if i == 1:
            continue
        for j in range(2,int(i**0.5)+1):
            if i%j == 0:
                flag = False
                break
            else:
                flag = True
        if flag:
            ans.append(i)
 
    for i in ans:
        print(i)
cs
320x100