🍇 🍇 🍇
#define int ll
ll gcd(ll a,ll b){return b==0?a : gcd(b,a%b);}
ll lcm(ll a,ll b){return a*b/gcd(a,b);}
signed main()
{
int a,b;cin>>a>>b;
if(a<b) swap(a,b);
if(a%b==0) cout<<0<<endl;
else
{
vi ans;
for(int i = 1; i*i<=(a-b);++i)
{
if((a-b)%i==0)
{
ans.push_back(i);
if(i*i!=(a-b)) ans.push_back((a-b)/i);
}
}
int fun = 0,minlcm = lcm(a,b);
for(auto now:ans)
{
int k = (now - b%now)%now;
if(lcm(a+k,b+k)< minlcm||(lcm(a+k,b+k)== minlcm&&k<fun))
{
fun = k;
minlcm =lcm(a+k,b+k);
}
}
cout<<fun<<endl;
}
return 0;
}