| | | | | |

두 자연수를 입력받아 최대공약수(GCM), 최소공배수(LCM)를 구하는 순서도를 작성하라. 

-사용되는 변수 
∴ A, B : 입력 자연수 
∴ L : 제수 변수 
∴ S : 피제수 변수 
∴ N : 나머지 
∴ GCM : 최대공약수 
∴ LCM : 최소공배수 

- 처리조건 
구하고자 하는 GCM, LCM은 자연수 범위로 한정한다. 
입력되는 두 자연수의 크기는 A가 B보다 크다고 가정한다. 
나머지 값은 mod() 함수를 사용한다. (Mod()함수 예) mod(14, 3) ⇒ 결과 2 

순서도

a=int(input())
b=int(input())
L=int(a)
S=int(b)
N=1
while (N != 0):
	N=L%S
	if N==0: break
	L=S
	S=N
	
GCM=S
LCM=int(a*b/GCM)
print(GCM, LCM)

 

함수로 작성된 예제

def gcd(a, b):
    if a < b:
        (a, b) = (b, a)
    while b != 0:
        (a, b) = (b, a % b)
    return a
L=int(input())
S=int(input())
GCM=gcd(L,S)
LCM=L*S/GCM
print(GCM, LCM)