본문 바로가기

백준 알고리즘 문제풀이

[Python] 2609번: 최대공약수와 최소공배수

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

 

2609번: 최대공약수와 최소공배수

첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.

www.acmicpc.net



# 두개의 자연수를 입력받아 최대공약수와 최소 공배수를 출력하는 프로그램


def 최대공약수(A,B):    #공통의 약수중에서 가장 큰수
    if A==B:     #둘이 같은 수일 경우
        return A
    elif A>B:    # 10 5 인 경우
        for k in range(B,0,-1):
            if A%k==0 and B%k==0:   #나누어 떨어지면 최대공약수
                return k
    else:
        for k in range(A,0,-1):
            if A%k==0 and B%k==0:   #나누어 떨어지면 최대공약수
                return k

def 최소공배수(A,B): # 2*N==3*N이 되는 배수중에서 가장 작은 정수
    if A==B:
        return A

   
    for i in range(1,A*B+1):    # 1~ A*B 까지 하나씩 넣어주면서
        if i%A==0 and i%B==0:    # 해당 요소가 A,B 둘다 나누어 떨어지는 경우
            return i    # i를 출력 한다.



import sys

A,B = map(int, sys.stdin.readline().split())

print(최대공약수(A,B))   # 해결 완료
print(최소공배수(A,B))
 

 

'백준 알고리즘 문제풀이' 카테고리의 다른 글

[Python] 1978번: 소수 찾기  (0) 2023.01.01
[Python] 2164번: 카드2  (0) 2023.01.01
[Python] 1347번: 미로 만들기  (0) 2023.01.01
[Python] 9012번: 괄호  (0) 2023.01.01
파이썬 하면서 배워야 하는 것들  (0) 2022.12.31