백준

백준 #1145

곽가누 2023. 7. 5. 04:43

기억할 것

1. 조합을 튜플 형태로 저장 : 모듈 itertools 사용

arr = [a,b,c,d,e]
com = list(itertools.combinations(arr, 3))

2. 최소공배수 구하는 법 : 모듈 math 사용

math.lcm(A,B,C)

문제

다섯 개의 자연수가 있다. 이 수의 적어도 대부분의 배수는 위의 수 중 적어도 세 개로 나누어 지는 가장 작은 자연수이다.

서로 다른 다섯 개의 자연수가 주어질 때, 적어도 대부분의 배수를 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 다섯 개의 자연수가 주어진다. 100보다 작거나 같은 자연수이고, 서로 다른 수이다.

출력

첫째 줄에 적어도 대부분의 배수를 출력한다.

예제 입력 1 복사

30 42 70 35 90

예제 출력 1 복사

210

예제 입력 2 복사

1 2 3 4 5

예제 출력 2 복사

4

예제 입력 3 복사

30 45 23 26 56

예제 출력 3 복사

1170

예제 입력 4 복사

3 14 15 92 65

예제 출력 4 복사

195

내 코드

import itertools
import math

a,b,c,d,e = map(int,input().split())

#5C3 하기
arr = [a,b,c,d,e]
com = list(itertools.combinations(arr, 3))

#모든 조합의 최소공배수 구하기
box = []
for i in range(len(com)):
    A = com[i][0]
    B = com[i][1]
    C = com[i][2]
    box.append(math.lcm(A,B,C))

# 가장 작은 최소공배수 
print(min(box))

'백준' 카테고리의 다른 글

백준 #7568  (0) 2023.07.11
백준 #11650  (0) 2023.07.05
백준 #1181  (0) 2023.07.03
백준 #2798  (0) 2023.05.27
백준 #10871  (0) 2023.05.27