파이썬 알고리즘 : 소수 만들기

에라토스테네스의 체

2024년 5월 3일 알고리즘 문제풀이

문제

난이도

Lv.1

코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from itertools import combinations

def solution(nums):
    answer = 0
    board = [False for _ in range(3001)]
    board[2] = board[3] = True

    for num in range(4,3001):
        for i in range(2,num):
            if not num%i:
                break
        else:
            board[num] = True
            
    nCr = list(combinations(nums,3))
    for i in nCr:
        if board[sum(i)]:
            answer += 1

    return answer

나올 수 있는 모든 범위의 소수 여부를 판단한 후 문제를 풀었다. 이걸 에라토스테네스의 체라고 한단다.