k진수에서 소수 개수 구하기

송다은·2024년 10월 15일
def isPrime(num):
	if num<2:
    	return False
    for i in range(2, int(num**0.5) +1):
    	if num % i == 0:
        	return False
    return True

def solution(n, k):
    digits = []
    
    # n을 k진수로 변환
    while n > 0:
        digits.append(str(n % k))  # ' '.join사용하려면 str로 변환해야함 
        n //= k
    
    num = ''.join(reversed(digits))  # k진수로 변환한 문자열
    num_list = num.split('0')  # 0을 기준으로 분할
    
    prime_count = 0  # 소수의 개수를 세기 위한 변수
    for i in num_list:
        if i and is_prime(int(i)):  # 빈 문자열이 아닌 경우에만 소수 확인
            prime_count += 1  # 소수일 경우 카운트 증가
    
    return prime_count  # 소수의 개수 반환
  • k진수로 변환할 때 k로 나눈 나머지를 뒤로 정렬하면 된다는 것을 알 수 있었고, 소수 함수 구현은 이제 그냥 할 수 있을 것 같다 !!
profile
Anomaly Detection, AI Security, Multimodal

0개의 댓글