https://www.acmicpc.net/problem/19699
19699번: 소-난다!
지난 번 헛간 청약의 당첨우(牛)가 발표됐다. 청약에 당첨된 소들은 날아갈 듯이 기뻐하다가 진짜로 하늘을 날았다. 하지만 이후로 소들은 날 수 없었다. 그러던 어느 날, 꿀벌에게 쏘이면 잠깐
www.acmicpc.net
itertools의 combination을 사용해서, 조합을 구하고
그 sum이 소수인 것을 확인한다.
import sys
import math
import itertools
input = sys.stdin.readline
n,m = map(int,input().split())
l = list(map(int,input().split()))
l.sort()
answer = set()
def isPrime(n):
if n<=1: return False
if (n%2==0):
if n==2: return True
else: return False
for i in range(3,int(math.sqrt(n))+1,2):
if(n%i==0): return False
return True
for i in itertools.combinations(l,m):
x = sum(i)
if isPrime(x):
answer.add(x)
answer = list(answer)
answer.sort()
if len(answer)==0:
print(-1)
else:
for i in answer:
print(i, end = ' ')
'알고리즘 공부' 카테고리의 다른 글
[백준/비트마스크] 14939번 불 끄기 (0) | 2022.04.15 |
---|---|
[백준/DP] 2266번 금고 테스트 (0) | 2022.04.13 |
[백준/그리디] 22993번 서든어택3 (0) | 2022.03.17 |
[백준/세그먼테이션 트리] 10868번 최솟값 (0) | 2022.03.16 |
[백준/세그먼테이션 트리] 2357 최솟값과 최댓값 (0) | 2022.03.15 |