Cod sursa(job #1372882)

Utilizator raduzxstefanescu radu raduzx Data 4 martie 2015 15:42:26
Problema Factorial Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <fstream>

using namespace std;
unsigned long long nr,v[9]={0,5,25,125,625,3125,15625,78125,390625};
unsigned long long descompunere(unsigned long long k)
{
    unsigned long long e=1,i;
    k-=nr;
    for(i=8;i>=1;i--)
    {
       if(k>=v[i])
        while(k%v[i]==0)
       {
           k/=v[i];
           e+=i;
       }
    }
    return e;
}
int main()
{
    ifstream f("fact.in");
    ofstream g("fact.out");
    unsigned long long p,n,k,o,i;
    f>>p;
    k=1;
    if(p==0) g<<"0";
    else
    {
        while(k<p)
        {
            i=descompunere(k+1);
            k+=i;
            if(i>1)
                nr+=i-1;
        }
        if(k==p) g<<5*k-5*nr;
        else
            g<<"-1";
    }
    f.close();
    return 0;
}