프로그래머스 소수 만들기
문제
from itertools import combinations
import math
def solution(nums):
answer = 0
for i in combinations(nums,3):
for k in range(2,int(math.sqrt(sum(i)))+1):
if sum(i) % k == 0:
break
else:
answer+=1
nums에 있는 리스트에서 3개를 골라 소수인지 판별 해야한다는걸보고 바로 combinations이 생각났다!!
(combinations는 순서를 고려하지 않고 조합의 경우를 구할때 사용)
3개의 조합 경우를 각각 다 더하고 소수인지 판별하면 끝인데 여기서 소수인지 효율적으로 구하는 방법은 2부터 해당값의 제곱근+1 까지만 나머지가 0인지 판별하면 된다.