본문 바로가기
알고리즘/수학

[백준][Python] 2824번 최대공약수

by 임짠짠 2022. 9. 26.
반응형
 

2824번: 최대공약수

첫째 줄에 N(1 ≤ N ≤ 1000)이 주어진다. 둘째 줄에는 N개의 양의 정수가 공백으로 구분되어 주어진다. 이 수는 모두 1,000,000,000보다 작고, N개의 수를 곱하면 A가 된다. 셋째 줄에 M(1 ≤ M ≤ 1000)이

www.acmicpc.net

 

 

코드

def gcd(n,m):
	while m>0:
		n,m = m, n%m
	return n

n = int(input())
n_list = list(map(int,input().split()))
m = int(input())
m_list = list(map(int,input().split()))
n_num = 1
m_num = 1
for i in n_list:
	n_num *= i
for i in m_list:
	m_num *= i

print(str(gcd(n_num,m_num))[-9:])

 

설명

유클리드 호제법을 이용해서 최대공약수를 구했다.

최대공약수가 9자리보다 길다면 마지막 9자리만 출력해야 되므로 답을 string형으로 변환한 후 [-9: ] 까지만 출력했다.

반응형

댓글