문제 설명
•
양의 정수 을 진수로 변환했을 때, 숫자 0을 기준으로 분리된 부분들 중 소수의 개수를 구하는 문제
예제 입력/출력
n | k | result |
437674 | 3 | 3 |
110011 | 10 | 2 |
제약 조건
•
•
문제 풀이
•
브루트 포스 -
◦
문제에서 시키는 대로 구현하면 되는 단순 구현 문제에 해당
◦
필요한 함수
1) 진수로 변환하는 함수 -
2) 소수(Prime Number) 판별 함수 -
3) 0을 기준으로 split 하는 함수 -
풀이 코드
from math import sqrt
def convert(num, k):
ret = []
while num != 0:
ret.append(str(num % k))
num //= k
return ''.join(ret[::-1]) if ret else '0'
def is_prime(n):
if n == 1:
return False
for i in range(2, int(sqrt(n)) + 1):
if n % i == 0:
return False
return True
def solution(n, k):
num_string = convert(n, k)
nums = num_string.split("0")
ans = 0
for num in nums:
if num != '':
ans += is_prime(int(num))
return ans
Python
복사