Programming/JUNGOL : 정보올림피아드&알고리즘

[JUNGOL 수학1-1002]: 최대공약수, 최소공배수

토토모에요 2021. 8. 27. 11:23
728x90
반응형

JUNGOL 정보올림피아드&알고리즘에서 학습용으로 문제를 가져왔습니다. 문제가 될 시 수정, 삭제하겠습니다.

http://www.jungol.co.kr/

 

문제

n개의 정수를 입력받아서 최대공약수와 최소공배수를 구하는 프로그램을 작성하여 보자.

입력 형식

첫째 줄에 N (2≤N≤10) 을 입력 받고 다음 줄에 N개의 정수를 공백으로 구분하여 입력 받는다.
입력 받는 정수는 2이상 10,000 이하이다. 데이터의 크기가 주어진 범위를 벗어나는 입력은 없다.

출력 형식

입력받은 정수들의 최대공약수와 최소공배수를 공백으로 구분하여 출력한다.
최소공배수는 20억 이하의 정수이다.

입력 예

3
2 8 10

출력 예

2 40

code

def GCD_GET(a,b):
    ans=0
    for i in range(1,a+1):
        if a%i==0 and b%i==0:
            ans=i
    return ans
N=int(input())
l=list(map(int,input().split()))
GCD=LCM=l[0]
for i in range(1,N):
    GCD=GCD_GET(GCD,l[i])
    LCM=int(LCM/GCD_GET(LCM,l[i])*l[i])
print(GCD,LCM)
반응형