Cod sursa(job #307461)

Utilizator corinne.Niculae Corina corinne. Data 24 aprilie 2009 10:33:34
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 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;  
}