Cod sursa(job #2398006)

Utilizator bogdan2604Bogdan Dumitrescu bogdan2604 Data 4 aprilie 2019 23:07:07
Problema Factorial Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <fstream>
//#define f cin
//#define g cout
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
typedef unsigned long long ull;
ull n,nr,tot,i,k;
ull dv5(ull n)
{
    ull k=0;
    while(n%5==0)
    {
        n/=5;
        ++k;
    }
    return k;
}
int main()
{
    f>>n;
    if(n==0)
    {
        g<<0;
        return 0;
    }
    nr=n*5;
    tot=n;
    i=25;
    k=1;
    while(i<nr)
    {
        tot+=nr/i*k;
        ++k;
        i*=5;
    }
    while(tot>n)
    {
        tot-=dv5(nr);
        nr-=5;
    }
    if(tot!=n)
        g<<-1;
    else
        g<<nr;
}