✏ 풀이
from itertools import combinations
import sys
import math
input = sys.stdin.readline
result = list()
t = int(input())
for i in range(t):
sum = 0
numbers = list(map(int, input().split()))
del numbers[0]
for x, y in combinations(numbers, 2):
gcd = math.gcd(x, y)
sum += gcd
result.append(sum)
for i in range(t):
print(result[i])
유클리드 호제법, GCD(최대공약수), LCM(최소공배수)
itertools 라이브러리의 permutations(순열), combination(조합) 클래스
for문 + combination(조합) 최적화: 2차원 리스트/튜플에서 안쪽 원소에 접근
✏ 풀이
n, k = map(int, input().split())
sieve = [True] * (n+1) # 체를 영어로 sieve라 한다!
count = 0
for i in range(2, n+1):
if sieve[i] != False:
for j in range(i, n+1, i): # i부터 n까지 step을 i로 해서 반복
if sieve[j] != False:
sieve[j] = False
count += 1
if count == k:
print(j)