728x90
문제
다섯 개의 자연수가 있다.
이 수의 적어도 대부분의 배수는 위의 수 중 적어도 세 개로 나누어 지는 가장 작은 자연수이다.
서로 다른 다섯 개의 자연수가 주어질 때, 적어도 대부분의 배수를 출력하는 프로그램을 작성하시오.
https://www.acmicpc.net/problem/1145
입력
첫째 줄에 다섯 개의 자연수가 주어진다.
100보다 작거나 같은 자연수이고, 서로 다른 수이다.
출력
첫째 줄에 적어도 대부분의 배수를 출력한다.
예제
# input
30 42 70 35 90
# output
210
# input
1 2 3 4 5
# output
4
# input
30 45 23 26 56
# output
1170
문제 풀이
# 1
L = list(map(int, input().split()))
min_num = min(L)
while True:
cnt = 0
for i in range(len(L)):
if min_num % L[i] == 0:
cnt += 1
if cnt >= 3:
print(min_num)
break
min_num += 1
# 2
import math
L = list(map(int, input().split()))
ans = []
for i in range(len(L)):
for j in range(len(L)):
for k in range(len(L)):
if L[i] == L[j] or L[i] == L[k] or L[j] == L[k]:
pass
else:
ans.append(math.lcm(L[i],L[j],L[k]))
print(min(ans))
파이썬을 독학하시는 분들에게 도움이 되길 바라며,
혹 더 좋은 방법이 있거나 오류가 있다면 편하게 말씀 부탁드립니다.
728x90