Cod sursa(job #346898)
Utilizator | Data | 10 septembrie 2009 00:57:18 | |
---|---|---|---|
Problema | Factorial | Scor | 90 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.5 kb |
#include <iostream.h>
#include <fstream.h>
long i, p, a, b, m, vm;
int v(int i)
{
int val = i;
while (i > 0){
i /= 5;
val += i;
}
return val;
}
int main()
{
ifstream fi("fact.in");
ofstream fo("fact.out");
fi>>p;
if (p == 0){
fo<<"1";
return 0;
}
a = 1;
b = 1000000000;
while ( b - a > 0 ){
m = ( a + b ) / 2;
vm = v( m );
if ( p == vm ){
fo << m*5;
return 0;
}
else if ( vm < p )
a = m;
else
b = m;
}
fo<<"-1";
return 0;
}