Pagini recente » Istoria paginii runda/e_foarte_simplu/clasament | Cod sursa (job #891242) | Cod sursa (job #1707241) | Cod sursa (job #1879777) | Cod sursa (job #346901)
Cod sursa(job #346901)
#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 ( 1 ){
if (b - a == 1){
if (p == v(a)){
fo << a*5;
return 0;
}
else if (p == v(b)){
fo << b*5;
return 0;
}
else
break;
}
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;
}