Cod sursa(job #227868)
Utilizator | Mathe Bogdan Zilla | Data | 5 decembrie 2008 17:52:28 |
---|---|---|---|
Problema | Factorial | Scor | 15 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.72 kb |
#include <stdio.h>
int main()
{
FILE *f=fopen("fact.in","r"),*g=fopen("fact.out","w");
int p,x=0,n,y;
fscanf(f,"%d",&p);
if(p==0)
{
fprintf(g,"1");
return 0;
}
n=4*p;
while(n%5!=0)
--n;
while(x<p)
{
x=0;
//if(n%5==0)
{
y=n;
while(y)
{
x+=y/5;
y/=5;
x+=y/5;
y/=5;
x+=y/5;
y/=5;
}
}
n+=25;
}
n-=25;
while(x<p)
{
x=0;
//if(n%5==0)
{
y=n;
while(y)
{
x+=y/5;
y/=5;
x+=y/5;
y/=5;
x+=y/5;
y/=5;
}
}
n+=5;
}
if(x==p)
fprintf(g,"%d",n-5);
else
fprintf(g,"-1");
return 0;
}