[pro] 소수 찾기

letsbebrave·2022년 6월 4일
0

codingtest

목록 보기
135/146

풀이

from itertools import permutations
import math

def is_prime_number(num):
    if num >= 2: # 이 부분 처음에 간과했음..! (2부터 소수가 될 수 있음)
        for i in range(2, int(math.sqrt(num)) + 1):
            if num % i == 0:
                return False
        return True

def solution(numbers):
    answer = 0
    length = len(numbers)
    cases = set()
    for i in range(1, length + 1):
        tmp = list(permutations(numbers, i)) # tmp [('0', '1'), ('0', '1'), ('1', '0'), ('1', '1'), ('1', '0'), ('1', '1')]
        for j in range(len(tmp)):
            tmp[j] = ''.join(tmp[j]) # tmp에 있는 모든 문자열 하나로 합치기
            cases.add(int(tmp[j])) 
    for num in cases:
        if is_prime_number(num):
            answer += 1
    
    return answer
profile
그게, 할 수 있다고 믿어야 해

0개의 댓글