9613: GCD 합

Untitled

풀이

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])

2960: 에라토스테네스의 체

Untitled

풀이

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)