본문 바로가기

카테고리 없음

프로그래머스 LV2 k진수에서 소수 개수 구하기

728x90
def solution(n, k):
    answer = 0;
    
    word = '';
    
    while n :
        word = str(n%k) + word;
        n = n // k;
    word = word.split('0');
    
    for i in word :
        prime = True;
        if len(i) == 0:
                    continue;
        if int(i) < 2 :
            continue;
        
        else :
            for j in range(2,int(int(i)**0.5)+1): 
                if int(i)%j==0:
                    prime = False;
                    break;
            if prime : 
                answer+=1;
            
            
        
    return answer

풀이 및 회고

우선 k 진수로 변환합니다. 그리고 난 후 '0' 을 기준으로 나눕니다.

split을 통해 얻은 배열에서 '' 인 경우랑 1인 경우 건너뜁니다.

나머지에 대해서 소수인지 판별합니다.

728x90