Cod sursa(job #1588790)
| Utilizator | Data | 3 februarie 2016 16:58:13 | |
|---|---|---|---|
| Problema | GFact | Scor | 15 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.55 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream fi("gfact.in");
ofstream fo("gfact.out");
long long p, q;
long long zero(long long n){
long long r = 0;
while (n >= p){
r += n / p;
n /= p;
}
return r;
}
long long cautbin()
{
long long i = 0;
long long pas = (long long) 1 << 31;
while (pas != 0)
{
if (zero(i + pas) < q)
i += pas;
pas /= 2;
}
return i+1;
}
int main()
{
long long int nr=0;
fi >> p >> q;
nr = cautbin();
//if (zero(nr) == q)
fo << nr;
//else fo << -1;
}