Cod sursa(job #164692)

Utilizator ProcopliucProcopliuc Adrian Procopliuc Data 24 martie 2008 18:06:01
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
# include <stdio.h>
# include <math.h>
long int p,a[20],x,i,ok,w,q,y,z,ok2;
long int nrz (long int x)
{
long int k=0,i;
for (i=1;i<=13;i++)
k=k+(x/a[i]);
return k;
}
int main ()
{
freopen ("fact.in","r",stdin);
freopen ("fact.out","w",stdout);
scanf ("%li",&p);
for (i=1;i<=13;i++)
a[i]=pow (5,i);
x=500000000;
q=x;
while (ok==0 && ok2==0)
{
w=nrz (x);
y=x;
if (w==p)
{
y=x;
ok=1;
}
q=q/2;
if (p<w)
x=x-q;
else
x=x+q;
if (q<=50)
ok2=1;
}
if (ok2==1)
{
ok=0;
ok2=0;
if (y<x)
{
for (i=y-50;i<=x+50;i++)
if (nrz (i)==p)
{
ok2=1;
z=i;
break;
}
}
else
{
for (i=x-50;i<=y+50;i++)
if (nrz (i)==p)
{
ok2=1;
z=i;
break;
}
}
}
if (p==0)
printf ("1");
else
{

if (ok==1)
printf ("%li",y);
if (ok2==1)
printf ("%li",z);
if (ok==0 && ok2==0)
printf ("-1");
}
return 0;

}