#include<bits/stdc++.h>
using namespace std;

bool isprime(int x){
    
    for(int i=2;i<x;i++){
        if(x%i==0){
            return false;
        }
    }

    return true;
}
void prime(int x,vector<int>& p){
    for(int i=2;i<=x;i++){
        
        while(x%i==0){
            x/=i;
            p[i]++;
        }
        
    }
}
void isp(int x,vector<int>& p){
    for(int i=2;i<=x;i++){
        if(isprime(i)){
            int w=i;
            while(w<=x){
              
                  
           
               int z=x/w;
                
                p[i]+=z;
                
            
              w*=i;
            }
         
        }
    }
}
int main(){
    int n,a;int k;
    while(cin>>n>>a){
        k=INT_MAX;
    vector<int> p1(1000,0);vector<int> p2(1000,0);
    isp(n,p1);prime(a,p2);
    for(int i=2;i<1000;i++){
        if(p2[i]!=0){
          k=min(k,p1[i]/p2[i]);
        }
       
    }
    if(k==INT_MAX)cout<<0<<endl;
    else
    cout<<k<<endl;
        
        
    }
    
}