반응형

   문제

   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



반응형

'알고리즘(python) > 수학' 카테고리의 다른 글

[Python]수학3 백준 11051  (0) 2020.01.22
[Python]수학3 백준 11050  (0) 2020.01.21
[Python]수학3 백준 2981  (0) 2020.01.21
[Python]수학3 백준 2609  (0) 2020.01.20
[Python]수학3 백준 11653  (0) 2020.01.20
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기