Pagini recente » Cod sursa (job #2036215) | Cod sursa (job #785889) | Cod sursa (job #881653) | Cod sursa (job #2118328) | Cod sursa (job #1496770)
#include <iostream>
#include <algorithm>
#define NMAX 1000000000
#include <fstream>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
long long int nr_10(long long int x)
{
long long int nr_5 = 0;
for(long long int i=5;i<=x;i*=5)
nr_5+=x/i;
long long int nr_2 = x/2;
return min(nr_2,nr_5);
}
long long int cautare_binara(long long int x,long long int y, long long int nr)
{
if(x<=y)
{
long long int m = (x+y)/2;
if((nr_10(m)>=nr) && (nr_10(m-1)<nr))
return m;
else
{
if(nr_10(m)>=nr)
return cautare_binara(x,m,nr);
else
return cautare_binara(m+1,y,nr);
}
}
return -1;
}
int main()
{
long long int p;
in>>p;
in.close();
if(!p)
out<<1<<'\n';
else
if(p==5)
out<<-1<<'\n';
else
out<<cautare_binara(1,NMAX,p)<<'\n';
return 0;
}