[백준 파이썬 2609번]최대공약수와 최소공배수★gcd,lcm★유클리드함수★
2022. 10. 24. 16:59
728x90
반응형
1. math library 의 gcd , lcd 모듈 사용하기
import math
a, b = map(int, input().split())
print(math.gcd(a, b))
print(math.lcm(a, b))
2. 유클리드 함수 사용하기
import sys
A= list(map(int,sys.stdin.readline().rstrip().split()))
A= sorted(A , reverse=True)
seo, dae = 0,0
if A[0]%A[1] ==0:
seo = A[1]
dae = A[0]
else:
a,b = A[0],A[1]
while True:
temp = a%b
if temp !=0:
a = b
b= temp
elif temp == 0:
seo = b
break
dae = A[0]*A[1]//seo
print(seo)
print(dae)
==> seo --> 최소공배수
dae --> 최대공약수
else 문 ==>
ex) 22와 4
1) temp = 22 % 4 = 2
a = 4
b = 2
2) temp = 4%2 = 0
seo = 2
dae = 22*4//2 = 44
유클리드 함수는 두개를 나누고 나눈 몫에 대하여 나머지가 0이 나올때까지의 수 ==> 최소공배수를 구할 수 있다.
728x90
반응형
'Python(백준) > 정수론 및 조합론' 카테고리의 다른 글
[백준 파이썬 3036번]링★gcd,lcm★ (0) | 2022.10.24 |
---|---|
[백준 파이썬 2981번]검문★약수구하기★애스터리스크(Asterlisk)★ (0) | 2022.10.24 |
[백준 파이썬 2004번]조합0의 개수★★ (0) | 2022.10.24 |
[백준 파이썬 1037번]약수 (0) | 2022.10.24 |
[백준 파이썬 5086번]배수와 약수 (0) | 2022.10.24 |