카테고리 없음
[Python] 백준 1934 최소공배수
도아죻아
2022. 11. 13. 17:05
반응형
코드 작성1
n = int(input())
for _ in range(n):
k =[]
a,b = map(int, input().split())
for i in range(1,min(a,b)+1):
if a%i == 0 and b%i == 0:
k.append(i)
print(a*b//max(k)) #a*b/max(k)로 연산할 경우 소수점 1자리가 붙는다
코드 작성2
import math
n = int(input())
for _ in range(n):
a,b = map(int, input().split())
print(math.lcm(a,b)) #lcm : least common multiple(최소공배수)
코드 풀이1
#1
a와 b의 수 중 작은 수로 for문을 1부터 a,b중 작은 수까지 돌리고, 나누어 떨어지는 수(n%i)를 k의 리스트에 넣는다(append). 그 약수 중 가장 큰 수가 최대공약수이다.
#2
a*b/최대공약수를 계산하면 최소공배수가 된다.
#3
파이썬에서는 20/4는 5.0이다. 따라서 print(int(20/4) 또는 print(20//4)로 입력해야 한다.
코드 풀이2
#1
math 모듈을 import 함으로써 파이썬에 내장되어 있는 최대공약수와 최소공배수의 함수를 사용할 수 있다.
최대공약수 : gcd - Greatest Common Devisor(가장 큰 공통의 나눈 수)
최소공배수 : lcm - Least Common Multiple(가장 작은 공통의 배수)
영어로만 기억하려면 헷갈리기 때문에 풀어서 이해하려고 해야한다.
반응형