Cod sursa(job #2377294)
Utilizator | Data | 9 martie 2019 15:12:49 | |
---|---|---|---|
Problema | Factorial | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.65 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("fact.in");
ofstream of("fact.out");
long long int dr = 100000000;
int main()
{
long long int p, fr5, st = 0, mid;
f >> p;
if( p == 5 )
{
cof << -1;
return 0;
}
int x;
while(st < dr)
{
mid = (st + dr) / 2;
fr5 = 0; x = 5;
while(x <= mid)
{
fr5 += mid / x;
x = x * 5;
}
if( fr5 == p)
break;
else if( fr5 > p ) dr = mid - 1;
else if( fr5 < p ) st = mid + 1;
}
of << mid;
return 0;
}