[프로그래머스/Python] 소수 찾기

정나영·2023년 5월 19일
0
post-custom-banner

👉 문제 링크

👉 아이디어

"17"이 주어지면 17, 71 모두 고려해야 하는 문제이므로, 순열로 풀어야 한다.
"011"은 "11"로 정리해야하기 때문에 정수형으로 변환하면서 정리

👉 전체 코드

from itertools import permutations

def solution(numbers): 
    answer = 0
    num = list(numbers)

    arr = []
    for i in range(1, len(num)+1):
        arr += list(permutations(num, i))

    intArr = []
    for i in arr:
        intArr.append(int(''.join(i)))
    
    intArr = list(set(intArr))
    
    for i in intArr:
        if i <= 1:
            continue
        elif is_prime(i):
            answer += 1
    
    return answer

def is_prime(num): # 소수 판별 함수
    for i in range(2, int(num/2)+1):
        if num % i == 0:
            return False
    
    return True
post-custom-banner

0개의 댓글