본문 바로가기
코딩 테스트/do it! 알고리즘 코딩테스트

038 거의 소수

by ornni 2024. 6. 4.
728x90
반응형

첫번째 코드

 

소수 구하기를 위한 에...라토스테네스의 체를 이용하는 코드를 작성하자!! 까지는 잘 작성했는데,

마지막에 거듭제곱에서 더하는 것에서 애를 먹어 책에서 참고했다!!

 

책과 에라토스테네스의 체를 이용하는 과정은 똑같지만

범위 구성에서 생각이 조금 다르다.

 

책은 그냥 모든 숫자에 대해서 진행하였지만,

나는 거듭 제곱이면 최대값에서 2제곱 아래까지만 진행하여 거기서 소수를 구하고

마지막에 소수의 숫자들이 최소값 이상, 최대값 이하인 경우만 구하면 된다고 생각했다.

 

둘다 정답에 도달한다!

 

import sys
import math
input = sys.stdin.readline

n, m = map(int, input().split())
M = int(math.sqrt(m))
A = list(range(M + 1))

A[1] = 0

for i in range(int(math.sqrt(M)) + 1):
    if A[i] == 0:
        continue
    else:
        for j in range(i + i, M + 1, i):
            A[j] = 0

answer = 0

for i in range(len(A)):
    if A[i] != 0:
        tmp = A[i]
        while A[i] <= m/tmp:
            if A[i] >= n/tmp:
                answer += 1
            tmp = A[i] * tmp

print(answer)

 

통과!:)


링크

https://github.com/ornni/programmers/tree/main/%EB%B0%B1%EC%A4%80/Gold/1456.%E2%80%85%EA%B1%B0%EC%9D%98%E2%80%85%EC%86%8C%EC%88%98

 

programmers/백준/Gold/1456. 거의 소수 at main · ornni/programmers

repository for recording Programmers Algorithm problem solving - ornni/programmers

github.com

 

반응형

'코딩 테스트 > do it! 알고리즘 코딩테스트' 카테고리의 다른 글

040 제곱 ㄴㄴ 수  (0) 2024.06.06
037 소수 구하기  (0) 2024.06.04
036 잃어버린 괄호  (0) 2024.05.30
035 회의실 배정  (0) 2024.05.30
034 수 묶기  (0) 2024.05.28