728x90
문제
풀이 코드1(완전탐색)
a, b, c, d, e = map(int, input().split())
# 범위는 적당히 큰 수까지 함
for num in range(1, 100000000):
count = 0
if num % a == 0: # num이 a로 나누어지는지 확인
count += 1
if num % b == 0: # num이 b로 나누어지는지 확인
count += 1
if num % c == 0: # num이 c로 나누어지는지 확인
count += 1
if num % d == 0: # num이 d로 나누어지는지 확인
count += 1
if num % e == 0: # num이 e로 나누어지는지 확인
count += 1
# 문제의 조건에서 3개 이상으로 나누어지는 수를 찾음
if count > 2:
print(num)
break
풀이 코드2(while문 활용)
a = list(map(int, input().split()))
n = min(a)
# 가장 작은 수의 배수 중에서 가장 큰 수까지
while True:
cnt = 0
for num in a:
if n % num == 0:
cnt += 1
if cnt > 2:
print(n)
break
if cnt > 2:
break
n += 1
- 입력으로 다섯 개의 자연수를 받음
- 그 중에서 가장 작은 수를 찾음
- 그리고 가장 작은 수부터 시작하여 숫자를 1씩 증가시키면서 각 숫자들로 나누어지는지 확인하는 반복문을 수행
- 만약 현재 숫자가 적어도 세 개의 수로 나누어진다면, 해당 숫자를 출력하고 반복문을 종료
- 그렇지 않은 경우에는 다음 숫자를 확인하기 위해 현재 숫자에 1을 더함
- 이를 반복하여 적어도 세 개의 수로 나누어지는 가장 작은 자연수를 찾음
'프로그래밍 > 알고리즘' 카테고리의 다른 글
백준 14225 - 부분수열의 합 (0) | 2023.06.13 |
---|---|
백준 15736 - 청기 백기 파이썬 (2) | 2023.06.08 |
프로그래머스 - 표편집 파이썬 (0) | 2023.06.01 |
프로그래머스 - 홀수 vs 짝수 파이썬 (0) | 2023.05.26 |
프로그래머스 - 파괴되지 않은 건물 파이썬 (0) | 2023.05.25 |
댓글