Cod sursa(job #31398)
| Utilizator | Data | 15 martie 2007 22:43:16 | |
|---|---|---|---|
| Problema | Factorial | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.49 kb |
#include<stdio.h>
int main () {
int k,i,nr0=0,c,nr=0;
FILE *in=fopen("fact.in","r"), *out=fopen("fact.out","w");
fscanf(in,"%d",&k);
if(k<0)
fprintf(out,"-1\n");
else
if(k==0)
fprintf(out,"1\n");
else{
for(i=1;nr0<k;i*=5){
nr0+=i;
nr++;
}
c=i;
c-=25;
nr0=nr0-nr-4;
while(nr0>k){
c-=25;
nr0=nr0-nr-3;
}
while(nr0<k){
c+=5;
nr0+=1;
}
}
fprintf(out,"%d\n",c);
fclose(in);
fclose(out);
return 0;
}
