최대공약수와 최소공배수 성공
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 | 128 MB | 59661 | 35066 | 28422 | 59.904% |
문제
두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다.
출력
첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.
예제 입력 1 복사
24 18
예제 출력 1 복사
6
72
첫번째 코드 - > 결과 틀렸습니다.
왜지?! 값은 맞게 나오는데..
n,m = map(int,input().split())
min = 1
max = 1
while 1:
if n % 2 == 0 and m % 2 == 0:
n = n // 2
m = m // 2
min *= 2
max *= 2
elif n % 3 == 0 and m % 3 == 0:
n = n // 3
m = m // 3
min *= 3
max *= 3
else :
max = max * n * m
break
print(min)
print(max)
첫번째 코드 - > 결과 틀렸습니다.
왜지?! 값은 맞게 나오는데..
import math
n,m = map(int,input().split())
print(math.gcd(n,m))
print(math.lcm(n,m))
이건 math 모듈로 쉽게 풀 수 있다고 해서 사용해보았다.
잘 되네
gcd -> 최소공약수
lcm -> 최대공배수
'코딩테스트 준비 > 백준' 카테고리의 다른 글
백준 11050번 파이썬 이항 계수 1 (0) | 2022.04.06 |
---|---|
백준 1934번 파이썬 최소공배수 (0) | 2022.04.05 |
백준 5543번 파이썬 상근날드 (0) | 2022.03.31 |
백준 1037번 파이썬 약수 (0) | 2022.03.30 |
파이썬 23795번 , 사장님 도박은 재미로 하셔야 합니다 (0) | 2022.03.29 |