1. 문제
문제 설명
제한사항
입출력 예시
입출력 예 설명
2. 풀이 과정
내가 생각한 진행 과정
- k진수로 바꾸기
- 10을 3진수로 한다면? -> 1010

- 거꾸로 읽어야함 -> 나머지를 문자로 가지고와야함
- '0'을 기준으로 나눈 후 나뉘어진 수가 소수인지 확인
- 만약, 110011이면, ['11', '', '11']이렇게 나옴! -> 공백인 경우는 소수인지 확인X
최종 코드
def isPrime(x):
for i in range(2, int(x ** 0.5) + 1):
if x % i == 0:
return False
return True
def solution(n, k):
k_word = ''
while n:
n, mod = divmod(n, k)
k_word += str(mod)
k_word = k_word[::-1]
temp = k_word.split('0')
answer = 0
for t in temp:
if t:
if int(t) >= 2 and isPrime(int(t)):
answer += 1
return answer
발생했던 문제
1. TypeError: 'float' object cannot be interpreted as an integer

- 소수 구할 때, x**0.5까지만 구하면 됨.
- 이때, range(정수, 정수)인데, x**5가 정수가 아닐 수 있음 -> 따라서 int로 정수화 시켜줘야함