본문 바로가기
알고리즘/프로그래머스

[프로그래머스] 소수 찾기 (python)

by 김홍중 2021. 6. 29.

문제링크

 

permutations, 에라토스테네스의 체를 이용하여 풀었습니다. 

from itertools import permutations

def is_prime(case):
    for divisor in range(2, int(case ** 0.5) + 1):
        if case % divisor == 0:
            return False
    return True

def make_cases(cases, numbers):
    for unit in range(1, len(numbers) + 1):
        temp = permutations(numbers, unit)
        for case_tuple in temp:
            cases.append(int(''.join(case_tuple)))
    
def solution(numbers):
    cases = []
    
    make_cases(cases, numbers)
    
    cases = list(set(cases))
    prime_count = len(cases)
    
    for case in cases:
        if case < 2 or not is_prime(case):
            prime_count -= 1          
    return prime_count

댓글