Cod sursa(job #1027278)
| Utilizator | Data | 12 noiembrie 2013 18:03:03 | |
|---|---|---|---|
| Problema | Factorial | Scor | 5 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.64 kb |
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
long long P, step, N, Z, temp, nr, i;
long long fact(long long N)
{
Z = N / 5;
nr = log(Z)/log(5);
return nr;
}
int main()
{
in >> P;
step = 1ll<<30;
for ( ; step >= 5; step >>= 1 )
{
N = step;
Z = N / 5;
nr = log(Z)/log(5);
Z += nr;
if ( Z <= P )
{
N = N + (P - Z - (fact(N<<1) - nr) )*5;
N = N - (N % 5);
out << N;
break;
}
}
return 0;
}
