본문 바로가기

PS/프로그래머스

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

728x90

https://programmers.co.kr/learn/courses/30/lessons/92335?language=python3 

 

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

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

programmers.co.kr

k 진법으로 숫자를 변환한 후

0 을 기준으로 숫자를 나누고 

그 숫자들이 소수가 맞는지 판단하면 되는문제

 

import math


def trans_to_k_number(n, k):
    return_str = ""

    while n >= k:
        return_str = str(n % k) + return_str
        n = n // k

    if n != 0:
        return_str = str(n) + return_str

    return return_str


def is_prime(x):
    if x == 1:
        return False

    for i in range(2, int(math.sqrt(x)) + 1):
        if x % i == 0:
            return False
    return True


def solution(n, k):
    answer = 0

    k_number = trans_to_k_number(n, k)

    for num in k_number.split("0"):
        if num == "":
            continue

        if is_prime(int(num)):
            answer += 1

    return answer


solution(110011, 10)

 

728x90