Pagini recente » Cod sursa (job #2213670) | Cod sursa (job #2174258) | Cod sursa (job #1381430) | Rating Ioana Teodora (IoanaT) | Cod sursa (job #2309747)
#include<bits/stdc++.h>
#define ll long long
#define f first
#define s second
using namespace std;
ifstream in("gfact.in");
ofstream out("gfact.out");
ll p;
ll cacat(ll n){
ll nr=n/p,i=2;
while(pow(p,i)<=n){
nr+=(i-1);
++i;
}
//cout<<n<<" "<<nr<<"\n";
return nr;
}
int main(){
ll q, pas=1LL<<60, r=0;
double rad;
cin>>p>>q;
rad=sqrt(p);
while(rad*rad==p){
q*=2;
p=rad;
rad=sqrt(p);
}//cout<<q<<" "<<p<<"\n\n";
while(pas){
if(cacat(r+pas)<q)
r+=pas;// cout<<pas<<" ;";
pas/=2;
}
cout<<r+1;
return 0;
}