Cod sursa(job #1015547)

Utilizator alex-florinHarbuzariu Alexandru Florin alex-florin Data 24 octombrie 2013 20:23:10
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;
ifstream f("fact.in");
ofstream g("fact.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;
    f>>p;
    if(p==0)
        g<<"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)
            {
                g<<"-1";
                exit(EXIT_SUCCESS);
            }
            n=(a+b)/2;
        }
        if(n%10<5)
            while(n%10!=0)
            n--;
        else
            while(n%10!=5)
            n--;
        g<<n;
    }
    f.close(); g.close();
    return 0;
}