Pagini recente » Cod sursa (job #139036) | Cod sursa (job #1110772)
/// Craciun Catalin
/// Fact
/// Cautare binara
/// www.infoarena.ro/problema/fact
#include <fstream>
#include <iostream>
#define UPPER_LIMIT 500000000
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
long p;
long zerouri(long q)
{
long cifre=0;
while (q/5!=0)
{
cifre+=q/5;
q/=5;
}
return cifre;
}
long cautBin(long st, long dr)
{
long m;
while (st<=dr)
{
m=(st+dr)/2;
long o=zerouri(m);
if (o<p)
st=m+1;
else if (o>p)
dr=m-1;
else if (o==p)
{
while (zerouri(m)==p)
m--;
m++;
return m;
}
}
return -1;
}
int main()
{
f>>p;
f.close();
if (p==0)
g<<1<<'\n';
else if (p==1)
g<<5<<'\n';
else
g<<cautBin(0, UPPER_LIMIT);
g.close();
return 0;
}