#include #include using namespace std; typedef long long ll; ll gcd(ll a, ll b) { return b==0?a:gcd(b,a%b); } ll phi(ll v) { ll res=v; for (ll i=2;i*i<=v;++i) { if (v%i==0) { res-=res/i; while(v%i==0) v/=i; } } if (v>1) res-=res/v; return res; } ll pow_mod(ll a, ll k, ll m) { ll r=1,t=a%m; while(k) { if (k&1) r=(r*t)%m; k>>=1; t=(t*t)%m; } return r; } int main() { ll p,q; while(scanf("%lld%lld",&p,&q),p|q) { ll d=gcd(p,q); p/=d; q/=d; ll alpha=0,beta=0; while(q%2==0) q/=2,++alpha; while(q%5==0) q/=5,++beta; ll myu=max(alpha,beta); ll nyu=1LL<<62; if (q==1) { nyu=0; } else { ll p=phi(q); for (ll v=1;v*v<=p;++v) { if (p%v==0) { if (v