Pagini recente » Borderou de evaluare (job #201690) | Borderou de evaluare (job #2401088) | Borderou de evaluare (job #2578822) | Borderou de evaluare (job #1574281) | Cod sursa (job #3152501)
#include <bits/stdc++.h>
using namespace std;
unsigned long long p, q;
bool check (unsigned long long val){
unsigned long long count_p, putere_p;
count_p = 0;
putere_p = 1;
while (putere_p<=val){
putere_p *= p;
count_p += val/putere_p;
}
return (count_p >= q);
}
int main(){
ifstream cin ("gfact.in");
ofstream cout ("gfact.out");
unsigned long long a, left, right, mid, ans;
cin >> p >> q;
left=1;
right=600000000000000;
while (left<=right){
mid=(left+right)/2;
if (check(mid)){
ans=mid;
right=mid-1;
}
else
left=mid+1;
}
cout<<ans;
}