Cod sursa(job #307583)

Utilizator onixoana radu onix Data 24 aprilie 2009 14:30:04
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
 #include<fstream>  
 using namespace std;  
 int main()  
 {  
     long int p,n,a,s,i,j,k,m,nr5=0,imparte,salvat;  
     ifstream in("fact.in");  
     ofstream out("fact.out");  
     in>>p;  
     salvat=p;  
     n=0;  
     a=0;  
     while(p>=6)  
     {  
         s=1;  
         i=1;  
         j=0;  
         while(i*5+1<=p)   
         {  
             j++;  
             i=i*5+1;  
         }  
         for(k=1;k<=j;k++) s=s*5;  
         n=n+s;  
         p=p-i;  
     }  
     n=n+p; 
     m=n;  
     i=1;  
     while (i<m) i=i*5;  
     if((i==m)&&(i!=1)) a=1;  
     imparte=1;  
     for (i=1; i<= 5*n && imparte<=n; i++)  
     {  
         imparte*=5;  
         nr5+=5*n/imparte;  
     }  
     if (salvat==0)  
         out<<"1";  
     else  
         if (nr5==salvat)  
             out<<5*n;  
         else  
             out<<"-1";  
     in.close();  
     out.close();  
     return 0;  
 }