Cod sursa(job #545775)
#include<iostream.h>
#include<fstream.h>
int catezerouri(int n)
{
int k=0,x;
if(n<=4) return 0;
int i=1;
while(i<=n)
{ x=i;
while(x%5==0)
{
k++;
x=x/5;
}
i++;
}
return k;
}
int main()
{
int p,x;
bool gasit=false;
ifstream f("fact.in");
ofstream g("fact.out");
f>>p;
if(p==0) g<<1;
else
{
long long mij,st=0, dr=1000000;
while(st<=dr)
{
mij=(st+dr)/2;
if(catezerouri(mij)==p) {
while(catezerouri(mij)==p) mij--;
g<<mij+1; gasit=true;break;}
else
if(catezerouri(mij)<p) st=mij+1;
else dr=mij-1;
}
/*for(x=1;x<=1000000;x++)
{
if(catezerouri(x)==p){ g<<x; gasit=true;break;}
}
*/
if(!gasit) g<<-1;
}
return 0;
}