반응형
문제 출처 : 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 한 값에 대해서 검사를 해주었다
반응형
'CS 지식 > Algorithm-Problem Solving 정리' 카테고리의 다른 글
11653번: 소인수 분해, 나의 잘못된 접근법과 내가 놓친부분 (0) | 2021.01.10 |
---|---|
1712 손익분기점 python3 (0) | 2020.10.12 |
BOJ 11728 배열합치기 Python3 (0) | 2020.02.09 |
BOJ 1978 소수찾기 Python3 (0) | 2020.02.09 |
백준 온라인 저지 2108 문제풀이 with Python3 (0) | 2020.01.02 |