(알고리즘) 백준 9417 Python – Max GCD


9417:맥스

테스트 케이스의 수 N(1 < N < 100)은 첫 번째 줄에 표시됩니다. 각 테스트 케이스는 한 줄로 구성되며 M(1 < M < 100) 양의 정수가 제공됩니다. -231보다 크거나 같고 231보다 작거나 같은 숫자 -1

www.acmicpc.net

문제

M개의 정수가 주어지면 모든 수의 쌍의 최대 공약수를 구하는 프로그램을 작성하십시오.

문제를 해결하다

#01
def gcd(a,b):
    while b:
        mod=b
        b=a%b
        a=mod
    return a
    
for _ in range(int(input())):
	#02
    x=list(map(int,input().split()))
    ans=0
    for i in range(len(x)):
        for j in range(len(x)):
        	#03
            if i!=j and i>j:
                ans=max(gcd(x(i),x(j)),ans)
    print(ans)

– #01: 유클리드 알고리즘의 최대공약수를 구하는 함수를 만드세요.

– #02 : x에 입력된 값을 리스트 형태로 저장합니다.

출력할 ans 값의 기본값은 0으로 설정됩니다.

for 문과 함께 무차별 대입을 사용하여 gcd에 값을 입력합니다.

– #03 : i와 j의 값이 같지 않고 j가 i 인덱스 다음의 값이면 gcd를 실행한다.

함수의 반환 값이 현재 ans 값보다 크면 해당 값이 ans에 저장됩니다.

마지막으로 각 테스트에 대해 ans가 출력됩니다.