[백준 1934번 C/C++] 최소공배수
https://www.acmicpc.net/problem/1735
코드
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
using namespace std;
int GCD(int x, int y)
{
return y ? GCD(y, x%y) : x;
}
int main() {
int a, b, c, d, top, down, gcd;
scanf("%d %d", &a, &b);
scanf("%d %d", &c, &d);
top = a * d + b * c;
down = b * d;
if(top>=down)
gcd = GCD(top, down);
else
gcd = GCD(down, top);
printf("%d %d\n", top/gcd, down/gcd);
return 0;
}
- 두 분수의 덧셈을 한다. 이 때 분자, 분모 각각 값을 구하는 연산을 한다.
- 유클리드 호제법으로 분자와 분모 값의 최대공약수를 구한다.
- 분자와 분모 각각 최대공약수로 나눠준다.
https://tech.lonpeach.com/2017/11/12/Euclidean-algorithm/