-
Notifications
You must be signed in to change notification settings - Fork 0
Description
๋ฌธ์ ๋ถ์
์ฒซ ๋ฒ์งธ ๋จ๊ณ(๋ฌธ์ ์์ฝ ๋ฐ ์กฐ๊ฑด ํ์ )
์์ ์ ์ n๊ฐ๊ฐ ์ฃผ์ด์ก์ ๋, ๊ฐ๋ฅํ ๋ชจ๋ ์์ GCD์ ํฉ ๊ตฌํ๊ธฐ.
GCD: ์ต๋๊ณต์ฝ์(Greatest Common Divisor, GCD)
- ์ ๋ ฅ
์ฒซ์งธ ์ค์ ํ .์ผ์ ๊ฐ์(1โคtโค100)
๊ฐ ํ .์ผ๋ ํ ์ค๋ก ์ด๋ค์ง.
์ฒซ๋ฒ์งธ ์๋ ์์ ๊ฐ์ n(1โคnโค100), ์ดํ n๊ฐ์ ์๊ฐ ์ฃผ์ด์ง.
์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ ์๋ ๋ฐฑ๋ง์ ๋์ง ์์.
- ์ถ๋ ฅ
๊ฐ ํ .์ผ๋ง๋ค ๊ฐ๋ฅํ ๋ชจ๋ ์์ ์ต๋๊ณต์ฝ์์ ํฉ ์ถ๋ ฅ
๋ ๋ฒ์งธ ๋จ๊ณ (๋ฌธ์ ํต์ฌ ํ์ )
์ต๋๊ณต์ฝ์๋ ๋ ์์ฐ์์ ๊ณตํต๋ ์ฝ์ ์ค ๊ฐ์ฅ ํฐ ์
โ ๋์์ ์ต๋๊ณต์ฝ์๋ฅผ ๊ตฌํ๋ ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ ์ด์ฉ.
<์ ํด๋ฆฌ๋ ํธ์ ๋ฒ>
์์์ ๋ ์์ฐ์ a, b๊ฐ ์ฃผ์ด์ง๊ณ ๋ ์ค ํฐ ๊ฐ์ด a๋ผ๊ณ ๊ฐ์ ํ์.
a๋ฅผ b๋ก ๋๋ ๋๋จธ์ง๋ฅผ n๋ก ํ๋ค๋ฉด(a%b = n)
n์ด 0์ผ๋, b๊ฐ ์ต๋๊ณต์ฝ์์
๋ง์ฝ, n์ด 0์ด ์๋๋ผ๋ฉด a์ b๊ฐ์ ๋ค์๋ฃ๊ณ b์ n๋ฅผ ๋์ ํ๊ณ ์ ๊ณผ์ ์์ ๋๋๊ธฐ๋ถํฐ ๋ฐ๋ณตํ๋ค.
์ฝ๋ ์์ฑ
import sys
input = sys.stdin.readline
n = int(input())
def gcd(a, b):
if a % b == 0:
return b
else:
return gcd(b, a % b)
for _ in range(n):
tc = list(map(int, input().split()))
ans = 0
for i in range(1, tc[0]): # ์์ ๊ฐ์
for j in range(i + 1, tc[0] + 1): # ๋ ์๋ฅผ ์ง์ง์ด ์ค๋ค.
ans += gcd(tc[i], tc[j])
print(ans)๋๋์
์ ํด๋ฆฌ๋ํธ์ ๋ฒ์ผ๋ก ์ต๋๊ณต์ฝ์๋ฅผ ๊ตฌํ๋ค.