ALGORITHM/Kakao

[Python] k진수에서 소수 개수 구하기

김쿸후 2022. 3. 8. 17:42

1. 문제

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

 

코딩테스트 연습 - k진수에서 소수 개수 구하기

문제 설명 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소

programmers.co.kr

2. 코드

import math

# 소수 판별 함수
def is_prime_num(n):
    if (n == 1) :
        return False
    sqrt_n = math.sqrt(n)
    sqrt_n = int(sqrt_n) 
    for i in range(2,sqrt_n +1):
        if n % i == 0:
            return False
    return True

# n 진법으로 바꾸는 함수 
def dec_to_n(k,n):
    rev_base = ''
    while k > 0:
        k, mod = divmod(k, n)
        rev_base += str(mod)
    return rev_base[::-1]

# main 함수
def solution(n, k):
    # 숫자를 k진수로 바꿈
    str_num = dec_to_n(n,k)
    
    # 0으로 토크나이징
    list_num = str_num.split('0')
    
    # 리스트를 int로 바꾼 뒤 소수 판별
    answer = 0
    
    for i in list_num:
        if i == '':
            continue
        if(is_prime_num(int(i))):
            answer = answer+1 
    
    return answer

'ALGORITHM > Kakao' 카테고리의 다른 글

[Python] 양과 늑대  (0) 2022.03.14
[Python] 양궁대회  (0) 2022.03.08
[Python] 주차 요금 계산  (0) 2022.03.08
[Python] 뉴스 클러스터링  (0) 2022.01.07
[Python] 다트 게임  (0) 2022.01.04