Notice
Recent Posts
Recent Comments
Link
just inside
[백준] Bronze 1. 2609 - 최대공약수와 최소공배수 python 본문
728x90
문제 링크
https://www.acmicpc.net/problem/2609
문제 설명
두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다.
출력
첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.
제출 코드
import sys
input = sys.stdin.readline
def gcd(a, b):
while b != 0:
a, b = b, a % b
return a
def lcd(a, b):
return abs(a*b) // gcd(a, b)
a, b = map(int, input().split())
print(gcd(a, b))
print(lcd(a, b))
풀이
- 유클리드 호제법을 이용하여 최대공약수를 먼저 구한다.
- 두 수의 곱을 최대공약수로 나누면 최소공배수 이다.
알아둘 사항
2024.07.15 - [coding test/알고리즘] - [python] 최대공약수 / 최소공배수 - 유클리드 호제법
728x90
'coding test > 구현' 카테고리의 다른 글
[백준] Bronze 1. 11050 - 이항 계수 1 python (0) | 2024.07.16 |
---|---|
[백준] Bronze 1. 2869 - 달팽이는 올라가고 싶다 python (1) | 2024.07.16 |
[백준] Bronze 1. 1546 - 평균 python (0) | 2024.07.15 |
[백준] Bronze 1. 1259 - 팰린드롬수 python (0) | 2024.07.15 |
[백준] Bronze 2. 2292 - 벌집 python (0) | 2024.07.12 |