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

JinUk Lee·2023년 2월 8일
0

프로그래머스

목록 보기
10/48

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


def sosu(n):

    check = [ i for i in range(2, int(n**0.5)+1)]

    for i in check:
        if n%i==0:
            return False

    return True


def solution(n, k):
    result = ''
    while True:
        remain = n%k
        n = n//k
        result+=str(remain)
        if n<k:
            result+=str(n)
            break

    result = result[::-1]

    check_num_list = result.split('0')
    real_list = []
    for check in check_num_list:
        if len(check):
            real_list.append(int(check))

    answer = 0
    for num in real_list:
        if sosu(num) and num !=1:
            answer+=1

    return answer

소수 판별은 해당 수의 제곱근까지만 나누어보면 된다.

또한, split를 할때 110011 처럼 0이 두번 나오는 경우 ['11','','11'] 이런 식의 리스트가 만들어지기 때문에 주의해야한다.

profile
개발자 지망생

0개의 댓글