[알고리즘] k진수에서 소수 개수 구하기

nerry·2024년 1월 28일
0

알고리즘

목록 보기
85/86

문제

전체 코드

import math
def changeToK(n, k):
    rev_base = ''

    while n > 0:
        n, mod = divmod(n, k)
        rev_base += str(mod)

    return rev_base[::-1] 

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

def solution(n, k):
    answer = 0
    for sn in str(changeToK(n,k)).split("0"):
        if sn and isPrime(int(sn)):
            answer+=1
    return answer

해결

  1. k진법으로 변환한다.

    def changeToK(n, k):
        rev_base = ''
    
        while n > 0:
            n, mod = divmod(n, k)
            rev_base += str(mod)
    
        return rev_base[::-1] 
  2. 0을 기준으로 숫자를 분리한다.

  3. 소수인지 확인한다.

    def isPrime(n):
        if n==1: return False
        for i in range(2,int(math.sqrt(n))+1):
            if n%i==0 : return False
        return True
profile
터벅터벅 개발(은좋은)자 로그

0개의 댓글