aboutsummaryrefslogtreecommitdiff
path: root/c/las12uvas/2019/586_IIII.cpp
blob: 87103dbbb34e2c59b798756e3e0c67cf6e0546c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>

int getGcd(int a, int b) {
	if (a == 0 && b == 0)
		return 1;
	if (a == 0)
		return b;
    return b == 0 ? a : getGcd(b, a % b);
}

int main() {
	int is, vs, xs;
	int gcd;
	int piezas;
	std::cin >> is;
	std::cin >> vs;
	std::cin >> xs;
	while (is || vs || xs) {
		gcd = std::min(getGcd(is, vs), std::min(getGcd(vs, xs), getGcd(is, xs)));
		piezas = is / gcd;
		piezas += vs / gcd;
		piezas += xs / gcd;
		std::cout << piezas << std::endl;

		std::cin >> is;
		std::cin >> vs;
		std::cin >> xs;
	}
}