알고리즘/프로그래머스

[2022 KAKAO BLIND RECRUITMENT] k진수에서 소수 개수 구하기

래울 2022. 6. 24. 06:48

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

 

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

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

programmers.co.kr

 

문제자체는 간단하다.

1. 진수변환

2. 조건에 맞는 소수 판별

 

# 어찌저찌 길이 줄여봄...

import math
def solution(n, k):
    num = ''
    while n > 0:
        n, mod = divmod(n, k)   #몫과 나머지를 돌려줌
        num += str(mod)
          
    numbers = [int(i) for i in num[::-1].split('0') if i != '']
    return sum([1 for n in numbers if isPrime(n)])

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