728x90
728x90
최대공약수 구하기
두 정수 $a$, $b$를 입력받아서, $a$, $b$의 최대공약수를 출력하시오.
codeup.kr
2623(Codeup). 최대 공약수 구하기
카드 두 정수 a, b를 입력받아서, a, b의 최대공약수를 출력하시오.
입력
정수 a, b가 공백으로 구분되어 입력된다.(1<=a,b<=10,000)
출력
a, b의 최대공약수를 출력한다.
❧ 테스트 셋
64
128
❧ 출력 예시
64
❧ 정답
A, B = input().split()
A = int(A)
B = int(B)
if A > B:
A, B = B, A
C = A % B
while C > 0:
gcd = C
A, B = B, C
C = A % B
print(gcd)
1️⃣ 유클리드 호제법 사용
2️⃣ 소수를 구하는 방법 사용 시, 시간 복잡도 : O(n)
3️⃣ 유클리드 호제법 사용 시, 시간 복잡도 : O(logn)
유클리드 호제법
[ 1. 교과서 속 주개념] [ 1) 유클리드 호제법] 두 정수 a, b의 최대공약수를 G(a, b)라고 하자. 정수 a, b, q r (b ≠ 0)에 대하여 a = bq + r,이면 G(a, b) = G(b, r)가 성립한다. 〈증명〉 G(a, b) = g라고 하자. 최
terms.naver.com
메모리 | 시간 | 언어 | 길이 |
27724 KB | 16 MS | Python | 148 B |
728x90
'📊 Algorithm > Algorithm PS' 카테고리의 다른 글
[알고리즘 일기] 32. 전자레인지 (0) | 2021.06.01 |
---|---|
[알고리즘 일기] 31. 한수 (0) | 2021.06.01 |
[알고리즘 일기] 29. 삼각화단 만들기 (Small) (0) | 2021.05.29 |
[알고리즘 일기] 28. 먹을 것인가 먹힐 것인가 (0) | 2021.05.28 |
[알고리즘 일기] 27. 디지털 도어락 (0) | 2021.05.27 |