코딩테스트
[파이썬(python)] 2022 카카오 블라인드 공채 k진수에서 소수 개수 구하기
고후
2022. 3. 9. 16:55
https://programmers.co.kr/learn/courses/30/lessons/92335
코딩테스트 연습 - k진수에서 소수 개수 구하기
문제 설명 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소
programmers.co.kr
이 문제는 옛날에 소수 판별 알고리즘을 구현했던 것이 기억나서 쉽게 풀었다.
import math
def change(n, k):
#k 진수로 변환. 결과는 string
string = ''
q, r = divmod(n, k)
if q == 0 :
return string + str(r)
else :
return change(q, k) + str(r)
def isprime(n):
#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
change_k = change(n, k)
p = change_k.split('0')
p = [int(v) for v in p if v]
#공백제거
for i in p:
if isprime(i):
#소수이면
answer += 1
return answer