#include #define EN unsigned long int using namespace std; EN LCM(EN, EN); EN GCD(EN, EN); int main() { EN a, b, def_lcm=0, aux; double counter = 1.0, n = 0.0; bool found_answer=false; cin >> a >> b; def_lcm = LCM(a, b); if (a > b) { aux = a; a = b; b = aux; } while (counter < def_lcm) { ++counter; n = (b - (counter*a)) / (counter - 1); //cout << n << endl; if ((n > 0) && (n == (int)n)) { found_answer = true; break; } } if (!found_answer) n = 0; cout << n << endl; return 0; } EN GCD(EN a, EN b) { EN c = 0; while (a%b != 0) { c = b; b = a%b; a = c; } return b; } EN LCM(EN a, EN b) { return (a*b) / GCD(a, b); }