#include <bits/stdc++.h>
#include <cstdio>
using namespace std;
typedef long long ll;
const ll INF = 1e18;
int main() {
ll a,b;
cin>>a>>b;
if(gcd(a,b)!=1)
{
cout<<0<<'\n';
return 0;
}
if(a%2==1&&b%2==1)
{
cout<<1<<'\n';
return 0;
}
ll dx = abs(a-b);
if(dx==1)
{
cout<<-1<<'\n';
}
else
{
ll res = INF;
for(ll i=2;i*i<=dx;i++)
{
if(dx%i==0)
{
ll r = a%i;
res = min(i-r,res);
while(dx%i==0)
{
dx/=i;
}
}
}
if(dx>1)
{
ll r = a%dx;
res = min(res,dx-r);
}
cout<<res<<'\n';
}
}
// 64 位输出请用 printf("%lld")
挺有趣的一个题

京公网安备 11010502036488号