본문 바로가기

python

python/파이썬/유클리드 호제법/

숫자 2개를 입력받아 그 두 수의 최대공약수, 최소공배수를 구하자.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
a, b = map(int, input('숫자 2개를 입력하세요 : ').split())
= 1 
if a > b:
    high = a; low = b
else:
    high = b; low = a
    
while r > 0:
    r = high % low 
    high = low 
    low = r 
 
= a * b // high  
print('최대공약수 : {}, 최소공배수 : {}'.format(high, l))
 
cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
a, b = map(int, input('숫자 2개를 입력하세요 : ').split())
# 숫자 2개를 입력받아 큰 수와 작은 수를 판단한다. 
= 1 # 나머지를 기억하는 변수 r
if a > b:
    high = a; low = b
else:
    high = b; low = a
    
 
while r > 0:
# 큰 수를 작은 수로 나눈 나머지가 0이 될 때까지 반복하며 최대공약수를 계산한다.
    r = high % low # 큰 수를 작은 수로 나눈 나머지를 계산한다.
    high = low # 큰 수를 기억할 기억장소에 작은 수를 넣어준다.
    low = r # 작은 수를 기억할 기억장소에 나머지를 넣어준다. - 0이 될 때까지 무한루프
 
#===========================================
 
# 최소공배수를 계산하고 최대공약수와 최소공배수를 출력한다. 
= a * b // high # 몫 (//) 연산자로 하면 소수점이 나오지 않는다. 
print('최대공약수 : {}, 최소공배수 : {}'.format(high, l))
 
cs