728x90
반응형
소수를 찾는 방법은 결국 한 숫자 보다 작은 숫자들을 한번씩 죽 봐야한 다는 점에서 시간이 오래걸린다. 더군다나 여러개의 숫자들에 대해 각각 소수인지 판별하려면 시간이 많이 걸린다. ㅎ ㅎ
def solution(numbers):
answer = 0
#1. 가능한 숫자 조합을 추출.
def case(numbers):
from itertools import permutations
num_list = list(numbers)
length = len(num_list)
basket = set()
for i in range(1,length+1):
permute = list(permutations(num_list,i))
for j in permute:
n = int(''.join(j))
if n > 1:
basket.add(n)
return basket
#2. 소수인지 판별.
def is_prime_number(num):
import math
devide = int(math.sqrt(num))+1
for i in range(2,devide):
if num % i == 0:
return 0
return 1
#3. 결과.
candidate = case(numbers)
for i in candidate:
answer += is_prime_number(i)
return answer
728x90
반응형
댓글