파이썬 알고리즘 : 소수 찾기

완전 탐색

2024년 4월 9일 알고리즘 문제풀이

문제

난이도

Lv. 2

코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
from itertools import permutations

def check_prime(n):
    if n < 2:
        return False
    elif n<4:
        return True
    
    if not n%2:
        return False
    
    for i in range(2,int(n**(0.5))+1):
        if not n%i:
            return False
    else:
        return True

def make_arr(arr):
    result = []
    n = len(arr)
    tmp = []
    for i in range(1,n+1):
        tmp += list(permutations(arr,i))
    for a in tmp:
        result.append(int("".join(a)))
    return result

def solution(numbers):
    answer = 0
    result = set()
    arr = list(numbers)
    arr = make_arr(arr)
    arr = set(arr)
    for i in arr:
        if check_prime(int(i)):
            result.add(int(i))
    return len(result)