Pagini recente » Cod sursa (job #3301169) | Cod sursa (job #1992780) | Cod sursa (job #882840) | Cod sursa (job #2876649) | Cod sursa (job #1888965)
#include <fstream>
long int p, n, nup = -1, ndown;
bool fact(long int num)
{
n = 0;
while(num != 0)
num /= 5, n += num;
return (n >= p);
}
long int ft(long int num)
{
n = 0;
while(num != 0)
num /= 5, n += num;
return n;
}
void search_min()
{
if(ndown < nup)
if(fact((ndown + nup)/2))
nup = (ndown + nup)/2, search_min();
}
int main()
{
std::ifstream f("fact.in");
std::ofstream g("fact.out");
f>>p;
if(p == 0)
g<<1;
else
{
if(p > 0)
ndown = p*4, nup = p*5, search_min();
while(fact(nup-1))
nup--;
if(ft(nup) > p && ft(nup-1) < p)
g<<-1;
else
g<<nup<<"\n";
}
return 0;
}