코딩딩딩
(python) 백준 5618 - 공약수 본문
https://www.acmicpc.net/problem/5618
5618번: 공약수
첫째 줄에 n이 주어진다. n은 2 또는 3이다. 둘째 줄에는 공약수를 구해야 하는 자연수 n개가 주어진다. 모든 자연수는 108 이하이다.
www.acmicpc.net
1. 문제 설명
2개 ~ 3개의 수를 입력받아 공약수를 출력하는 문제
2. 문제 풀이
최대공약수는 입력받은 수들 중에서 가장 작은 수보다 클 수는 없다.
#수 입력
numberList = list(map(int, input().split()))
#최솟값
minNumber = min(numberList)
그러므로 1부터 가장 작은 수 까지 돌면서 입력받은 수를 모두 나누어 떨어지게 하는 그 수를 출력한다.
#1 ~ 최솟값
for i in range(1, minNumber + 1):
cnt = 0
for num in numberList:
#나누어 떨어지는 경우
if num % i == 0:
cnt += 1
#공약수가 아닌 경우
else:
break
if cnt == n: #공약수 조건
print(i)
3. 전체 코드
n = int(input())
numberList = list(map(int, input().split()))
minNumber = min(numberList)
for i in range(1, minNumber + 1):
cnt = 0
for num in numberList:
if num % i == 0:
cnt += 1
else:
break
if cnt == n:
print(i)
'백준' 카테고리의 다른 글
(python) 백준 10828 - 스택 (0) | 2023.10.02 |
---|---|
(python) 백준 1316 - 그룹 단어 체커 (0) | 2023.02.11 |
(python) 백준 7576 - 토마토 (bfs 풀이) (2) | 2023.02.04 |
(python) 백준18870 - 좌표 압축 (1) | 2023.02.04 |
(python) 백준 2606 - 바이러스 (DFS활용) (0) | 2023.01.31 |
Comments