Cod sursa(job #72953)
| Utilizator | Data | 15 iulie 2007 23:30:38 | |
|---|---|---|---|
| Problema | Factorial | Scor | 85 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.4 kb |
#include<stdio.h>
int main()
{
FILE *f;
int nr=0,p,t=1,m=0,q;
f=fopen("fact.in","r");
fscanf(f,"%d",&p);
fclose(f);
if(!p)fprintf(f,"%d",1);
if(!p)fprintf(f,"%d",0);
while(nr<p)
{
if(t%5)
if(p>(nr+4)) {nr+=4;m+=4;t+=4;}
else {m+=p-nr;nr=p;}
else {nr++; q=t;while(!(q%5)){q=q/5;nr++;}m++;t++;}
}
f=fopen("fact.out","w");
if(nr==p) fprintf(f,"%d",m*5);
else fprintf(f,"%d",-1);
return 0;}
