티스토리 뷰

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

'Algorithm > Math' 카테고리의 다른 글

(Python) - BOJ(2437번) : 저울  (0) 2022.01.31
(Python) - BOJ(2407번) : 조합  (0) 2022.01.31
(Python) - BOJ(1339번) : 단어 수학  (0) 2022.01.26
(C++) - BOJ(1242번) : 소풍  (0) 2022.01.26
(Python) - BOJ(1105번) : 팔  (0) 2022.01.25
댓글
© 2022 WonSeok, All rights reserved