Python/BAEKJOON

[백준] 3036번 링(python)

Magin 2022. 2. 15. 19:46
728x90

문제)

 

알고리즘)

- ring(입력 데이터) index 0번 기준 값 그외 나머지는 비교값

- ★최대 공약수 구하기

a / b 

b => 새로운 a  , a/b 나머지 => 새로운 b 

새로운 b => 0일때까지 반복

 

 

예시)

a= 12  b = 8

12%8 = 4  

새로운 a는 8  새로운 b는 4

8%4 = 0

새로운 a는 4 새로운 b = 0

반환 값은  4 

 

 

코드)

#링
import sys

input = sys.stdin.readline
n = int(input())
ring = list(map(int, input().split()))
std = ring[0]
data = ring[1:]

def cal(a, b): #최대공약수
    while b != 0:    
        num = a%b
        a = b
        b = num
    return a

for x in data:
    result = cal(std, x)
    print(f"{std//result}/{x//result}")
728x90