def solution(numbers):
nums = [n for n in numbers]
max_num = int('9'*len(numbers))
primes = set(range(2, max_num+1))
for i in range(2, max_num+1):
if i in primes:
primes -= set(range(i*i, max_num+1, i))
primes=list(primes)
count = 0
# rlt = []
for p in primes:
# temp = [str(x) for x in str(p)]
temp_nums = [x for x in numbers]
flag = 1
for x in str(p):
if x not in temp_nums:
flag = 0
break
else:
temp_nums.remove(x)
if flag:
count += 1
# rlt.append(''.join(temp))
# print(rlt)
return count
시간초과가 생겨서
소수판별하는 부분의 로직을 에라토스의 체를 적용하였다