#include #define EN unsigned int using namespace std; EN LCM(EN, EN); EN GCD(EN, EN); EN MIN(EN, EN); EN MAX(EN, EN); int main() { EN a, b, max, min_arg, max_runs, counter = 0; bool found_answer=false; cin >> a >> b; max = LCM(a, b); min_arg = MIN(a, b); if (a > b) max_runs = a - min_arg; else max_runs = b - min_arg; if (MAX(a, b) % min_arg != 0) { //cout << "I'm in IF\n"; while (counter < min_arg) { ++counter; if (LCM(a + counter, b + counter) < max) { found_answer = true; break; }; } } if (!found_answer) counter = 0; cout << counter << 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); } EN MIN(EN a, EN b) { if (a < b) return a; else return b; } EN MAX(EN a, EN b) { if (a > b) return a; else return b; }