[백준] 2609번 : 최대공약수와 최소공배수(파이썬)
문제
나의 답안
a,b=map(int,input().split())
def cal(num):
li=[]
for i in range(1,num+1):
if num%i==0:
li.append(i)
return li
gon=[x for x in cal(a) if x in cal(b)]
print(max(gon))
print(a * b // max(gon))
- a와 b를 입력 받는다.
- 약수를 계산하는 cal 함수를 정의해준다. 반복문을 통해 인자로 들어온 숫자의 약수를 구해주고, 배열에 저장해 배열을 리턴해준다.
- gon은 a의 약수와 b의 약수 중 같은 값을 갖는 것을 반환해준다. 공약수란 공통된 약수이다.
- gon 중 최대인 값이 최대공약수이다. 즉, max(gon)
- 최소공배수는 a와 b를 곱한 값을 최대공약수로 나눈 값을 의미한다. 따라서
(a * b // max(gon)
이 된다.
Author And Source
이 문제에 관하여([백준] 2609번 : 최대공약수와 최소공배수(파이썬)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yj_lee/백준-2609번-최대공약수와-최소공배수파이썬저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)