728x90
반응형
https://www.acmicpc.net/problem/5618
문제
자연수 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
반응형
'백준 > 수학' 카테고리의 다른 글
[백준] #1934 최소공배수 (python) (0) | 2022.03.01 |
---|---|
[백준] #2609 최대공약수와 최소공배수 (python) (0) | 2022.03.01 |
[백준] #1110 더하기 사이클 (python) (0) | 2022.02.26 |
[백준] #2745 진법 변환 (python) (0) | 2022.02.26 |
[백준] #22864 피로도 (python) (0) | 2022.02.25 |
댓글