[프로그래머스 python]완전탐색 소수찾기
2020-04-04https://programmers.co.kr/learn/courses/30/lessons/42839
numbers | return |
---|---|
17 | 3 |
011 | 2 |
numbers로 만들수있는 모든 순열(permutations)을 만들어서 isPrime()이 True인 경우 primes에 추가
return len(primes) 하면 답이 나오게된다.
import itertools
def is_prime(n: int) -> bool:
if n < 2:
return False
if n is 2:
return True
if n % 2 is 0:
return False
l = round(n ** 0.5) + 1
for i in range(3, l, 2):
if n % i is 0:
return False
return True
def solution(numbers):
numbers = list(numbers)
perms = []
for n in range(1,len(numbers)+1):
perms += set(map(''.join, itertools.permutations(numbers, n)))
perms = set(map(int,perms))
primes = []
for i in perms:
if is_prime(i):
primes.append(i)
return len(primes)