728x90
문제 출처: https://www.acmicpc.net/problem/2609
문제
두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다.
출력
첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.
예제 입력 1
24 18
예제 출력 1
6
72
정답
import math
a,b = map(int, input().split())
print(math.gcd(a,b))
print(int(a * b/(math.gcd(a,b))))
math모듈을 가져와서 gcd를 이용하여 문제를 풀었습니다.
첫번째 print문은 gcd로 최대공약수 출력
두번째 print문은 a * b를 한후 gcd로 구해준 최대공약수를 나누어 주어서 최소공배수출력
나누기를 할때는 int형으로 변환을 해주어야합니다(//를 통해 정수형으로 하는 방법도 있습니다.)
728x90
'코딩 > 백준' 카테고리의 다른 글
[백준/파이썬/수학] 9461번 파도반 수열 코딩테스트 연습풀이 실버3 (0) | 2022.02.12 |
---|---|
[백준/파이썬/수학] 2748번 피보나치 수2 코딩테스트 연습풀이 브론즈1 (0) | 2022.02.12 |
[백준/파이썬/수학] 10039번 평균 점수 코딩테스트 연습풀이 브론즈4 (0) | 2022.02.11 |
[백준/파이썬/수학] 2558번 A+B - 2 코딩테스트 연습풀이 브론즈5 (0) | 2022.02.11 |
[백준/파이썬] 15652번 N과 M(4) 코딩테스트 연습풀이 정렬 단계 실버 3 (0) | 2022.02.10 |