| ps | |
|---|---|
| 링크 | programmers.co.kr/… |
| 출처 | 프로그래머스 |
| 문제 번호 | 42839 |
| 문제명 | 소수 찾기 |
| 레벨 | Level 2 |
| 분류 |
소수 판별 |
| 시간복잡도 | O(n!*10^(n/2)) |
| 인풋사이즈 | n <= 7 |
| 사용한 언어 | Python |
| 해결날짜 | 2021/06/10 |
| 태그 | |
"""Solution code for "Programmers 42839. 소수 찾기".
- Problem link: https://programmers.co.kr/learn/courses/30/lessons/42839
- Solution link: http://www.teferi.net/ps/problems/programmers/42839
"""
import itertools
import math
def is_prime(num):
return (num >= 2 and
all(num % i != 0 for i in range(2, math.isqrt(num) + 1)))
def solution(numbers):
nums = set()
for i in range(1, len(numbers) + 1):
nums.update(int(''.join(x)) for x in itertools.permutations(numbers, i))
return sum(1 for num in nums if is_prime(num))