Cod sursa(job #40489)
Utilizator | Data | 27 martie 2007 14:23:45 | |
---|---|---|---|
Problema | Factorial | Scor | 85 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.63 kb |
#include <stdio.h>
int main()
{
int k,k1,k2,kt,f=0,ko;
FILE *in=fopen("fact.in","r");
FILE *out=fopen("fact.out","w");
fscanf(in,"%d",&k);
fclose(in);
if (k)
{
k1=k;
while (f==0)
{
kt=k1; k2=0;
while (kt)
{
k2+=kt/5; kt/=5;
}
k2=k1+k2;
if (k2>k)
if (k2-k>1)
k1-=(k2-k)/2;
else
k1--;
if (k2==k)
f=1;
if (k2<k)
if (k-k2>1)
k1-=(k2-k)/2;
else
k1++;
if (k1==k)
f=-1;
}
if (f==1)
fprintf(out,"%d\n",k1*5);
else
fprintf(out,"-1\n");
}
else
fprintf(out,"1\n");
fclose(out);
return 0;
}