Pagini recente » Cod sursa (job #2448361) | Cod sursa (job #555128) | Cod sursa (job #2291826) | Cod sursa (job #896951) | Cod sursa (job #583058)
Cod sursa(job #583058)
#include <iostream>
#include <fstream>
using namespace std;
int NrOfFives ( int n )
{
int pws[]={5,25,125,625,3125,
15625,78125,390625,1953125,9765625,48828125,
244140625,1220703125};
int s = 0;
int i = 0;
int a = 1;
while (a)
{
a = n / pws[i];
s += a;
i ++;
}
return s;
}
int main()
{
unsigned int i , p , st , mijl , j = 0 , gasit = 0 , m ;
long long int dr ;
fstream f("fact.in",ios::in);
fstream g("fact.out",ios::out);
f>>p;
if( p == 0 )
{
g << 1;
return 0 ;
}
f.close();
st = 0 ;
dr = 100000000;
while( st <= dr && !gasit )
{
mijl = ( st + dr )/2;
m = NrOfFives(int( mijl));
if( dr == st + 1)
{
g << -1 ;
return 0 ;
}
if( m == p )gasit=1;
else
{
if( m < p ) st = mijl ;
else dr = mijl ;
}
}
g << mijl - mijl % 5 ;
g.close();
return 0 ;
}