문제 링크 https://www.acmicpc.net/problem/1850 1850번: 최대공약수 모든 자리가 1로만 이루어져있는 두 자연수 A와 B가 주어진다. 이때, A와 B의 최대 공약수를 구하는 프로그램을 작성하시오. 예를 들어, A가 111이고, B가 1111인 경우에 A와 B의 최대공약수는 1이고, A www.acmicpc.net 문제 문제 풀이 유클리드 호제법을 사용해 나온 최대공약수에 대해 출력할 때 문자열 1을 최대공약수만큼 반복 출력하도록 한다. a, b = map(int, input().split()) if a < b: a, b = b, a while b != 0: a = a % b a, b = b, a print("1" * a)
유클리드호제법
문제 링크 https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 문제 문제 풀이 유클리드 호제법을 이용하는 문제이다. 유클리드 호제법에서는 숫자 a, b가 있을 때, a를 b로 나눈 나머지와 b의 최대 공약수가 a와 b의 최대공약수 와 같다.기존 b를 a에 / a를 b로 나누어 나온 나머지를 b에 대입하는 과정을 반복하여b가 0이 나올 경우 a가 최대공약수가 된다. 예)(18, 12) => (12, 6) => (6, 0)b가 0이 되는 a값은 6이므로 6이 18과 12의 최대공약수가 된다. 최소공배수는 a, b의 곱..