Cod sursa(job #2276249)

Utilizator BovisioNitica Ionut Bogdan Bovisio Data 4 noiembrie 2018 14:29:10
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <cstdio>

using namespace std;

long long f(long long p)
{
    long long x = 5, s=0;
    while(x <= p)
    {
        s += p/x;
        x = x*5;
    }
    return s;
}

long long bs(long long p)
{
    long long st=1,dr=10e8;
    while(st <= dr)
    {
        long long m = (st + dr)/2;
        if(f(m) < p)
            st = m + 1;
        else
        {
            if(f(m) > p)
                dr = m - 1;
            else
                return m/5*5;
        }
    }
    return -1;
}

int main()
{
    long long p;
    FILE *F = fopen("fact.in","r");
    FILE *g = fopen("fact.out","w");
    fscanf(F,"%lld",&p);
    if(p != 0)
        fprintf(g,"%lld",bs(p));
    else
        fprintf(g,"1");
    return 0;
}