본문 바로가기

Coding Test/Programmers

[프로그래머스/파이썬] k진수에서 소수 개수 구하기

728x90

 

 

나의 풀이

import re

def solution(n, k):
    num = ''
    answer = 0

    while n > 0:
        q, r = divmod(n, k)
        num = str(r) + num
        n = q

    pool = list(map(int, re.findall('[1-9]+', num)))

    for num in pool:
        for i in range(2, int(num ** 0.5) + 1):
            if num % i == 0:
                break
        else:
            if num != 1:
                answer += 1

    return answer

 - 아라토스테네스의 체에서 +1 을 안해줄때 문제가 생겼다. 아마 제곱수의 경우, 부동소수점 오차에 의한 것으로 추측된다

 - 앞으론 꼭 +1을 해줄 것.

 

 

 

반응형