[백준]2609번 최대공약수와 최소공배수 c/c++
·
개발/백준 & 프로그래머스
문제 https://www.acmicpc.net/problem/2609 나의 해결방법 이 문제를 처음봤을땐 우리가 수학으로 푸는 방식으로 자연수 두개가 같은값으로 나눠떨어지지 않을때까지 증가하는 i값으로 구해볼까? 했었는데 ex) while(1) if (n % i == 0 && m % i == 0) { n /= i; m /= i; max = max * i; } //최대공약수 구하기 이러한 방식으로 코드를 짜게 되면 나눠주는 값을 제대로 설정할 수 없었다. 그리고 while문을 빠져나가야할 조건을 생각해내지 못하였다. 유클리드 호제법으로 풀어야한다! 유클리드 알고리즘은 주어진 두 수 사이에 존재하는 최대공약수(GCD)를 구하는 알고리즘이다. ex) 1112, 695의 최대공약수 구하기 1. 큰수를 작은 수..