https://school.programmers.co.kr/learn/courses/30/lessons/92335
def sosu(n):
check = [ i for i in range(2, int(n**0.5)+1)]
for i in check:
if n%i==0:
return False
return True
def solution(n, k):
result = ''
while True:
remain = n%k
n = n//k
result+=str(remain)
if n<k:
result+=str(n)
break
result = result[::-1]
check_num_list = result.split('0')
real_list = []
for check in check_num_list:
if len(check):
real_list.append(int(check))
answer = 0
for num in real_list:
if sosu(num) and num !=1:
answer+=1
return answer
소수 판별은 해당 수의 제곱근까지만 나누어보면 된다.
또한, split
를 할때 110011 처럼 0이 두번 나오는 경우 ['11','','11']
이런 식의 리스트가 만들어지기 때문에 주의해야한다.