본문 바로가기
Problem Solving/프로그래머스

[프로그래머스|파이썬] k진수에서 소수 개수 구하기 (2022 KAKAO BLIND RECRUITMENT/lv.2)

by 청량리 물냉면 2023. 5. 22.
반응형
문제

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

🐍파이썬
import math
def solution(n, k):
    cnt = 0
    p = ''
    #k진수로 변경
    while n > 0:
        p += str(n%k)
        n //= k
    #k진수 문자열을 0으로 나누기
    p = p[::-1].split("0")
    for i in p:
        if i =="":  #"00"과 같이 0이 여러번 반복될 경우 빈문자열
            continue    #빈문자열 skip
        i = int(i)
        if i == 1:  #1 skip
            continue
        #소수 판별
        for j in range(2, int(math.sqrt(i))+1):
            if i%j == 0:    #i가 j로 나누어떨어지면 소수가 아님
                break
        else:   #for문에 도중에 종료되지 않고 끝까지 돌았다면
            cnt += 1    #소수갯수 체크
    return cnt

 

반응형