#include<bits/stdc++.h>
#define pii pair<int,int>
#define ff first
#define ss second
using namespace std;
vector<int>prime;
bool check[47000];
vector<pii>factors;
long long n,m;
void sieve()
{
long long i,j;
prime.push_back(2);
for(i=3; i<47000; i+=2)
{
if(check[i])
continue;
prime.push_back(i);
for(j=i*i; j<47000; j+=2*i)
{
check[j] = true;
}
}
}
void solve()
{
int i,cnt;
long long store = m;
for(i=0; prime[i]*prime[i]<=store; i++)
{
if(store%prime[i]==0)
{
cnt = 0;
while(store%prime[i]==0)
{
cnt++;
store/=prime[i];
}
factors.push_back(make_pair(prime[i],cnt));
}
}
if(store!=1)
{
factors.push_back(make_pair(store,1));
}
}
int main()
{
sieve();
int i;
while(scanf("%lld%lld",&n,&m)==2)
{
solve();
int len = factors.size();
bool tag = true;
for(i=0; i<len; i++)
{
long long store = n;
int a = factors[i].ff,cnt=0;
int b = factors[i].ss;
while(store/a)
{
cnt+=store/a;
store/=a;
}
if(b>cnt)
{
tag = false;
break;
}
}
if(tag)
{
printf("%lld divides %lld!\n",m,n);
}
else
{
printf("%lld does not divide %lld!\n",m,n);
}
factors.clear();
}
return 0;
}