알고리즘(python)/수학

[Python]수학3 백준 3036

개발일기 2020. 1. 21. 19:38
반응형

   문제

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




첫번째 원과 나머지원들의 최대공약수를 구해 각각나누어 주어 출력하면 된다.

최대공약수는 앞전에 사용했던 유클리드 호제법으로 구하였다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import sys
 
 
N=int(sys.stdin.readline())
ring_list=list(map(int,sys.stdin.readline().split()))
#최대공약수를 구해서 비교해본다.
def gcd(a,b):
    if a > b:
        a, b = b, a
 
    g = b
    r = a % b
    while r != 0:  # 유클리드 호제법
        tmp = r
        r = g % r
        g = tmp
 
    return g
 
for i in range(1,len(ring_list)):
    g=gcd(ring_list[0],ring_list[i])
    print(ring_list[0]//g,end="/")
    print(ring_list[i]//g)
 

cs



반응형