Algorithm : Programmers - 소수만들기
https://programmers.co.kr/learn/courses/30/lessons/12977
👉 문제
 
🐱👤모범답안
from itertools import combinations
import math
# 소수 판별
def isprime(n):
	# 소수 판별할 숫자의 제곱근을 구한다.
    sqrt = math.sqrt(n)
	# 제곱근이 2보다 작으면 소수가 아니다.
    if sqrt < 2:
        return False
	# 2부터 제곱근까지 나눴을때 나머지가 0이 나오면 소수가 아니다.
    for i in range(2, int(sqrt+1)):
        if n % i == 0:
            return False
    
    return  True
def solution(nums):
    answer = 0
    # 중복을 제거한 3개로 된 숫자의 배열을 만듬
    arr = list(combinations(nums, 3))
	
    print('arr = > ',arr)
    # 3개의 배열을 소수판별 시킴 -> 세개의 합이 True 면
    for n1, n2, n3 in arr:
        print('n1 = > ', n1)
        print('n2 = > ', n2)
        print('n3 = > ', n3)
        print('----------')
        if isprime(n1+n2+n3):
            # answer를 + 1
            answer += 1
    return answer
print(solution([1,2,4,5]))
arr = >  [(1, 2, 4), (1, 2, 5), (1, 4, 5), (2, 4, 5)]
n1 = >  1
n2 = >  2
n3 = >  4
----------
n1 = >  1
n2 = >  2
n3 = >  5
----------
n1 = >  1
n2 = >  4
n3 = >  5
----------
n1 = >  2
n2 = >  4
n3 = >  5
----------
2
🥽 문제풀이
- 
combinations 를 이용하여 중복을 제거한 3개 숫자의 배열을 만듬.
 - 
isprime 함수를 만들어서 소수 판별을 한다.
- 소수 판별할 숫자의 제곱근을 구한다.
 - 제곱근이 2보다 작으면 소수가 아니다.
 - 2부터 제곱근까지 나눴을때 나머지가 0이 나오면 소수가 아니다.
 - 나누어 떨어지지 않으면 소수이다.
 
 
Author And Source
이 문제에 관하여(Algorithm : Programmers - 소수만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@coil/Algorithm-Programmers-소수만들기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)