2609_최대공약수 최소공배수

hey hey·2022년 1월 6일
0

알고리즘

목록 보기
20/57
post-thumbnail

문제

두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오.

입력

첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다.

출력

첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.

풀이

a와 b의 모든 약수들을 구해준뒤 그 값들을 비교해서 같은 가장 큰 값이 최대공약수이다. 그리고 a와 b를 그 수로 나눠서 몫들의 곱과 최대공약수를 곱하면 최소공배수가 된다.

import sys
sys.stdin =open('input.txt')

A,B = map(int,input().split())
Ay = []
for i in range(1,A+1):
if A%i ==0:
Ay.append(i)
By = []
for i in range(1,B+1):
if B%i ==0:
By.append(i)

최대공약수 = 0
flag = 0
for i in Ay:
for j in By:
if i==j:
최대공약수 = i

print(최대공약수)
최소공배수 = A//최대공약수 B//최대공약수 최대공약수
print(최소공배수)

profile
FE - devp

0개의 댓글