Pagini recente » Cod sursa (job #2871081) | Cod sursa (job #2563638) | Borderou de evaluare (job #658526) | Cod sursa (job #261820) | Cod sursa (job #179096)
Cod sursa(job #179096)
#include <fstream.h>
ifstream f("fact.in");
ofstream g("fact.out");
long p;
long a,b,c,cvechi;
long nr(long numar)
{
long nr0=0;
while (numar%5==0)
{
nr0++;
numar=numar/5;
}
return nr0;
}
int main()
{
f>>p;
f.close();
if (p==0)
g<<1;
else
{
a=5;
b=5*p;
c=(a+b)/2;
long i,nr0,x;
nr0=0;
int sw=0;
for (i=a;i<=c;i=i+5)
{
x=i;
while (x%5==0)
{
nr0++;
x=x/5;
}
}
while (a<=b && sw==0)
{
cvechi=c;
/* g<<a<<" "<<b<<" "<<c<<" "<<nr0<<"\n";*/
if (p==nr0)
{
while (c%5!=0)
c--;
g<<c;
sw=1;
}
else
if (p<nr0)
{
b=c-1;
c=(a+b)/2;
for (i=cvechi;i>c;i--)
nr0=nr0-nr(i);
}
else
{
a=c+1;
c=(a+b)/2;
for (i=cvechi+1;i<=c;i++)
nr0=nr0+nr(i);
}
}
if (sw==0)
g<<"-1";
}
return 0;
}