https://school.programmers.co.kr/learn/courses/30/lessons/42839

from itertools import permutations
import math
def is_prime(num):
# 2보다 작은 숫자는 소수가 아님
if num < 2:
return False
# 2부터 √num까지 나누어떨어지는지 확인
for i in range(2, int(math.sqrt(num)) + 1):
if num % i == 0:
return False
return True
def solution(numbers):
answer = 0
# 조합 생성
numbers_list = list(numbers)
numbers_set = set()
# 숫자의 자리수 만큼
for i in range(1, len(numbers_list) + 1):
temp = permutations(numbers_list, i)
for j in temp:
result = int(''.join(j))
numbers_set.add(result) # 중복 방지를 위해 set에 바로 추가
# 소수 판별
for num in numbers_set:
if is_prime(num):
answer += 1
return answer