베르트랑 공준
-
[백준 4948번] 베르트랑 공준Coding Test/백준 2021. 3. 6. 22:09
# 문제 내 풀이 - 시간 초과, 수정 답안 n = 123456 * 2 # 2부터 (2 * 123456)까지의 모든 수에 대하여 소수 판별 # 처음엔 모든 수를 소수(True)인 것으로 초기화(0, 1은 제외) array = [True for _ in range(2 * n + 1)] # 에라토스테네스의 체 알고리즘 수행 # 2부터 2n의 제곱근까지의 모든 수에 대하여 for i in range(2, int((2 * n) ** 0.5) + 1): if array[i] == True: # i를 제외한 i의 모든 배수를 지우기 j = 2 while i * j 1 and array[i]: cnt += 1 # 개수 출력 print(cnt) 생각해볼 점 에라토스테네스의 체의 시간복잡도가 매우 빠르긴 하지만, 테스트..