Cod sursa(job #893468)

Utilizator alexblackFMI - Dumitrache Alexandru alexblack Data 26 februarie 2013 15:53:49
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("fact.in");
ofstream out("fact.out");
int const N=20;
long long n,p,a,pow[N],zero[N];
int main()
{
    in>>p;  pow[1]=5;   zero[1]=1;
    for(int i=2;i<N;i++)
    {
        pow[i]=5*pow[i-1];
        zero[i]=5*zero[i-1]+1;
    }
    for(int i=N-1;i>0;i--)
        if(p>=zero[i])
        {
            a=p/zero[i];
            if(a>=5){out<<"-1\n";return 0;}
            n+=a*pow[i];
            p=p%zero[i];
        }
    if(n==0){out<<"1\n";}
    else    out<<n<<"\n";
    return 0;
}