Cod sursa(job #3176440)
Utilizator | Cojocaru Calin Marcu NiffSniff | Data | 27 noiembrie 2023 08:31:56 |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.57 kb |
#include <fstream>
using namespace std;
ifstream cin ("fact.in");
ofstream cout ("fact.out");
long long f(long long x)
{
long long cnt = 0, p = 5;
while (x >= p)
{
cnt += x / p;
p*=5;
}
return cnt;
}
int main()
{
long long n;
cin >> n;
long long st = 1, dr = 500000015;
while (st<=dr)
{
long long mid = (st+dr)/2;
if (f(mid) < n)
{
st = mid+1;
}
else
{
dr = mid-1;
}
}
cout << (f(st) == n ? st : -1);
}