Идеи:
Предположим, что <= B, LCM (а + к, B + K) = (A + K) * (B + K) / НОД (а + к, Ь + к) = (а + к) * (Ь + к ) / НОД (б - а, а + к) (в соответствии с НОД (а, б) = НОД (Ь - а, а)), так что перечисление б - может быть фактором во всем.
Реализация:
1 #include <. Бит / STDC ++ H> 2 с использованием пространства имен STD; 3 ЬурейеЕ долго долго LL; 4 Const LL INF = 0x3f3f3f3f3f3f3f3f ; 5 LL кал (LL х, LL у, LL я, LL & Minn, LL & ANS) 6 { 7 , если (я> х) 8 { 9 , если (у + я - х < Minn) 10 { 11 Minn = у + я - х; 12 ANS = я - х; 13 } 14 } 15 еще 16 { 17 LL к = 0 ; 18 , если (х% я) к = (х / г + 1 ) * я - х; 19 LL т = (х + к) * (у + к) / __gcd (у - х, х + к); 20 , если (т < Minn) 21 { 22 Minn = т; 23 ANS = K; 24 } 25 } 26 } 27 INT основных () 28 { 29 Л.Л. а, б; 30 в то время как (CIN >> A >> б) 31 { 32 LL х = мин (а, б), у = тах (а, б); 33 , если (у% х == 0 ) {соиЬ << 0 << епсИ; продолжить ; } 34 LL Minn = INF, ANS = 0 ; 35 для ( INT I = 1 ; г * г <= у - х; я ++ ) 36 { 37 , если ((у - х)% я == 0 ) 38 { 39 кал (х, у, я, Minn, ANS) ; 40 , если((у - х) / I = I!) кал (х, у, (у - х) / я, Minn, ANS); 41 } 42 } 43 соиЬ << ANS << епсИ; 44 } 45 возврата 0 ; 46 }