1. 문제
https://programmers.co.kr/learn/courses/30/lessons/92335
코딩테스트 연습 - k진수에서 소수 개수 구하기
문제 설명 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소
programmers.co.kr
2. 코드
import math
# 소수 판별 함수
def is_prime_num(n):
if (n == 1) :
return False
sqrt_n = math.sqrt(n)
sqrt_n = int(sqrt_n)
for i in range(2,sqrt_n +1):
if n % i == 0:
return False
return True
# n 진법으로 바꾸는 함수
def dec_to_n(k,n):
rev_base = ''
while k > 0:
k, mod = divmod(k, n)
rev_base += str(mod)
return rev_base[::-1]
# main 함수
def solution(n, k):
# 숫자를 k진수로 바꿈
str_num = dec_to_n(n,k)
# 0으로 토크나이징
list_num = str_num.split('0')
# 리스트를 int로 바꾼 뒤 소수 판별
answer = 0
for i in list_num:
if i == '':
continue
if(is_prime_num(int(i))):
answer = answer+1
return answer
'ALGORITHM > Kakao' 카테고리의 다른 글
[Python] 양과 늑대 (0) | 2022.03.14 |
---|---|
[Python] 양궁대회 (0) | 2022.03.08 |
[Python] 주차 요금 계산 (0) | 2022.03.08 |
[Python] 뉴스 클러스터링 (0) | 2022.01.07 |
[Python] 다트 게임 (0) | 2022.01.04 |