Pagini recente » Cod sursa (job #1504084) | Cod sursa (job #1448337) | Cod sursa (job #2631330) | Cod sursa (job #1816982) | Cod sursa (job #2284073)
#include <fstream>
using namespace std;
ifstream cin("gfact.in");
ofstream cout("gfact.out");
const int L=10;
long long 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;
}
long long 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);
if(nrp(r,p)==q){
cout<<r;
}
return 0;
}