Pagini recente » Cod sursa (job #2200263) | Cod sursa (job #2660211) | Cod sursa (job #796573) | Cod sursa (job #799681) | Cod sursa (job #2284081)
#include <fstream>
using namespace std;
ifstream cin("gfact.in");
ofstream cout("gfact.out");
const int L=10;
int divmax(long long n){
int k=0;
for(int i=2;i<=n/2;i++){
if(n%i==0){
k=i;
}
}
if(k==0){
k=n;
}
return k;
}
int nrp(int n,long long m){
int nr=0;
while(n>=divmax(m)){
nr+=n/divmax(m);
n/=divmax(m);
}
return nr;
}
long long caut(int n,long long m){
int r=0,pas=1<<L;
while(pas!=0){
if(nrp(r+pas,m)<n){
r+=pas;
}
pas/=2;
}
return r+1;
}
int main()
{
int p,q;
cin>>p>>q;
int r=caut(q,p);
cout<<r;
return 0;
}