Cod sursa(job #252780)

Utilizator loginLogin Iustin Anca login Data 4 februarie 2009 21:53:44
Problema Factorial Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
# include <fstream>
using namespace std;
int main ()
{
    int p, i, j, k, q[100], pp=1, nrz, n;
    ifstream fin ("fact.in");
    ofstream fout ("fact.out");
    q[1]=5;
    for (i=2;i<=13;i++)
        q[i]=q[i-1]*5;
    fin>>p;
    if (p==0)
       fout<<"1";
    else
    {
        for (i=1;i<=13 && pp;i++)
            if (5*p>=q[i] && 5*p<q[i+1])
               pp=0;
        --i;
        nrz=p+1;
        for (j=5*p;nrz>p;j-=5)
        {
            nrz=0;
            k=i;
            n=j;
            while (k)
            {     
                  nrz=nrz+j/q[k];
                  --k;
            }
            if (nrz-p>p/25)
               j=((j-p/25)/5)*5;
        }
        if (nrz==p)
           fout<<n;
        else
           fout<<"-1";
    }
    return 0; 
}