또 뭐하지
백준 2609번 최대공약수와 최소공배수 본문
728x90
■ 제출코드
x, y = map(int, input().split())
for i in range(min(x,y),0,-1):
if (x%i==0) and (y%i==0):
print(i) # 최대공약수
print(int((x*y)/i)) #최소공배수
break
■ 유클리드 호제법 사용하여 최대공약수 구하는 코드
def gcd(a,b):
if b == 0 :
return a
else:
return gcd(b, a%b)
def divisor(x):
div = []
for i in range(x//2):
if x % (i+1) == 0:
div.append((i+1))
div.append(int(x/(i+1)))
return div
div1 = set(divisor(x))
div2 = set(divisor(y))
gcd = max(div1 & div2)
뻘짓하다가 런타임에러 뜬 코드.. 제발 공부를 하고 단순히 생각하자 (최소공배수 구하는 법도 까먹어서 하나씩 더해서 비교하는 코드 짜고 있는게 말이 되냐고;;)
'Study > Coding Test' 카테고리의 다른 글
백준 28702번 FizzBuzz (0) | 2024.11.11 |
---|---|
백준 2775번 부녀회장이 될테야 (0) | 2024.11.02 |
백준 1546번 평균 (1) | 2024.10.31 |