Cod sursa(job #1468493)
Utilizator | Data | 6 august 2015 10:55:15 | |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.73 kb |
#include<cstdio>
using namespace std;
int P;
long long put, NR, ans = -1, div, st, dr;
int nr_zero(int n)
{
int nr = 0;
while (n)
{
nr += n/5;
n /= 5;
}
return nr;
}
int main()
{
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%d", &P);
st = 1;
dr = 1000000000;
while ( st <= dr)
{
div = (st + dr) / 2;
NR = nr_zero(div);
if (P > NR)
st = div + 1;
else
{
dr = div - 1;
if (P == NR)
ans = div;
}
}
printf("%lld", ans);
}