본문 바로가기
백준/수학

[백준] #5618 공약수 (python)

by 똥먹는낙타 2022. 2. 25.
728x90
반응형

https://www.acmicpc.net/problem/5618

 

5618번: 공약수

첫째 줄에 n이 주어진다. n은 2 또는 3이다. 둘째 줄에는 공약수를 구해야 하는 자연수 n개가 주어진다. 모든 자연수는 108 이하이다.

www.acmicpc.net

 

문제

자연수 n개가 주어진다. 이 자연수의 공약수를 모두 구하는 프로그램을 작성하시오.

입력

첫째 줄에 n이 주어진다. n은 2 또는 3이다. 둘째 줄에는 공약수를 구해야 하는 자연수 n개가 주어진다. 모든 자연수는 108 이하이다.

출력

입력으로 주어진 n개 수의 공약수를 한 줄에 하나씩 증가하는 순서대로 출력한다.

 

예제 입력1

2
75 125

예제 출력1

1
5
25

 

예제 입력2

3
110 22 88

예제 출력2

1
2
11
22

# Code

import sys
def gcd(a, b):
    if(a == 0):
        return b
    return gcd(b % a, a)
n = int(sys.stdin.readline())
s = list(map(int, sys.stdin.readline().split()))
g = gcd(s[0], gcd(s[1], s[-1]))
for i in range(1, (g // 2) + 1):
    if g % i == 0:
        print(i)
print(g)

 

728x90
반응형

댓글