Cod sursa(job #540115)

Utilizator EugenStoicaEugen Stoica EugenStoica Data 23 februarie 2011 18:44:40
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<fstream>

using namespace std;

ifstream fin("fact.in");
ofstream fout("fact.out");

long long p;
long long nrz;

long long nr_zero(long long x)
{
    long long nr = 0;
    long long ulterm = 5;
    while(ulterm<=x)
    {
        nr += x/ulterm;
        ulterm*=5;
    }
    return nr;
}

int main()
{
    fin>>p;
    long long a=p*4;
    long long b=400100000;
    if(p==0)
    {
        fout<<1;
        return 0;
    }
    while(a<b)
    {
        long long c=(a+b)/2;
        long long zero=nr_zero(c);
        if(zero==p)
        {
            if(c%10>=5)
                fout<<c-c%10+5;
            else fout<<c-c%10;
            return 0;
        }
        if(zero<p)
            a=c+1;
        else
            b=c-1;      
    }
    fout<<-1;
    return 0;
}