[프로그래머스 | Lv2] k진수에서

https://school.programmers.co.kr/learn/courses/30/lessons/92335

n을 기본 k로 변환(n이 0이 될 때까지 k로 나누기),

0이 아닌 숫자만 나누기(split(‘0’))

소수인지 확인하기만 하면 됩니다.

먼저 findPrime에서 반복 문의 범위를 (2, num//2)로 설정했지만 tc1에서 만료되었습니다.

그래서 범위를 다시 (2, 제곱근 + 1)로 설정했습니다.

# 프로그래머스 92335: k진수에서 소수 개수 구하기 (2022 KAKAO BLIND RECRUITMENT)

def findPrime(num): # 소수 찾기
    if num == 1:
        return False
    for i in range(2, int(num**(1/2))+1):
        if num % i == 0:
            return False
    return True

def solution(n, k):
    s=""
    while n > 0: # k진수로 변환
        s = str(n % k) + s
        n //= k
    
    answer = 0
    for i in s.split('0'):
        if i !
= '': if (findPrime(int(i))): answer += 1 return answer