Cod sursa(job #131042)

Utilizator ValentinagroPandichie Anton-Valentin Valentinagro Data 2 februarie 2008 23:23:02
Problema Factorial Scor 90
Compilator c Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<stdio.h>  
   
int fact(int p)  
{  
    int l=1,k=0,c=1,nr=5,n=p;    
    if (p==0) return 1;
    while ((c*5+1)<=p)
    {
          l++;
          c=c*5+1;
          nr*=5;
    }
    if (c==p) return nr;
    else while (l>0)
         {
               int i=0;
               l--;
               while (c<=n) {k+=nr;n-=c;i++;}
               nr/=5;
               c/=5;
               if (i>4) return 0;
         } 
         return k;
}  
   
int main()  
{  
     int p;  
     freopen("fact.in","r",stdin);  
     freopen("fact.out","w",stdout);  
     scanf("%d",&p);  
     fclose(stdin);  
     printf("%d",fact(p));  
     fclose(stdout);  
     return 0;      
}