CS 지식/Algorithm-Problem Solving 정리
BOJ 1929 소수 구하기 Python3
Hoplin
2020. 2. 9. 18:49
반응형
문제 출처 : https://www.acmicpc.net/problem/1929
1929번: 소수 구하기
첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000)
www.acmicpc.net
import math
a,b = map(int,input().split())
for b in range(a,b + 1):
if b == 1:
continue
if b == 2:
print(b)
else:
boolT = True
for c in range(2,int(math.sqrt(b)) + 1): # 제곱근을 통해서 나누어지는 수 검사를 줄인다. 왜냐? 수가 많아질수록 for문이 도는 속도는 더 길어지기 때문
if b % c == 0:
boolT = False
break
else:
continue
if boolT == True:
print(b)
else:
continue
시간 복잡도를 약간 고려해 주어야 하는 문제이다. 앞의 1978문제와 비슷하다. 기존과 동일하게 1과 자기자신 숫자 사이의 수들로 나누어 보는 방법이 있긴하지만, 좀더 빠르게 하기 위해서 제곱근 + 1 한 값에 대해서 검사를 해주었다
반응형