Cod sursa(job #1016167)

Utilizator KiralyCraftKiraly Alex KiralyCraft Data 25 octombrie 2013 20:55:25
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>
#include <stdlib.h>
#include <math.h>
using namespace std;
fstream fin("fact.in",ios::in);
fstream fout("fact.out",ios::out);
int nr_z(long long k)
{
    int pt=1, nr=0;
    while(pow(5,pt)<=k)
    {
        nr=nr+floor(k/pow(5,pt));
        pt++;
    }
    return nr;
}
int main()
{
    long long p, n;
    fin>>p;
    if(p==0)
        fout<<"1";
    else
    {
        long long a=0, b=400000017;
        n=(a+b)/2;
        while(nr_z(n)!=p)
        {
            if(p<nr_z(n))
                b=n-1;
            else
                a=n+1;
            if(a>b)
            {
                fout<<"-1";
                return 0;
            }
            n=(a+b)/2;
        }
        if(n%10<5)
            while(n%10!=0)
                n--;
        else
            while(n%10!=5)
                n--;
        fout<<n;
    }
    return 0;
}