//Accepted 420K 16MS
//考虑 0和n! does not divide
// 1和0! divides
#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
<<)+;
int pri[imax_n];
int cnt;
void prime()
{
;i<imax_n;i++)
{
if ((long long )i*i<(long long )imax_n)
for (int j=i*i;j<imax_n;j+=i)
{
pri[j]=;
}
}
cnt=;
;i<imax_n;i++)
)
pri[cnt++]=i;
}
int getNumber(int n,int k)
{
;
) ;
)
{
ans+=n/k;
n/=k;
}
return ans;
}
int split(int n,int m)
{
int t;
//printf("n=%d\n",n);
) ;
)
{
) ;
;
}
;i<cnt && (__int64 )pri[i]*pri[i]<=(__int64 )n;i++)
{
)
{
//printf("pri=%d\n",pri[i]);
t=;
)
{
t++;
n/=pri[i];
}
int temp=getNumber(m,pri[i]);
//printf("temp=%d t=%d\n",temp,t);
;
}
}
)
{
int temp=getNumber(m,n);
) ;
}
;
}
int main()
{
prime();
int n,m;
while (scanf("%d%d",&n,&m)!=EOF)
{
int ans=split(m,n);
)
{
printf("%d divides %d!\n",m,n);
}
else
{
printf("%d does not divide %d!\n",m,n);
}
}
;
}