Cod sursa(job #601303)

Utilizator vlad2901Vlad Berindei vlad2901 Data 5 iulie 2011 21:02:28
Problema Factorial Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <stdio.h>
#include <math.h>

int p;

int nrz(int n)
{
    int fact, z;

    fact = 5;
    z = 0;

    while(fact <= n)
    {
        z += floor(n / fact);
        fact *= 5;
    }
    return z;
}

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



}


int main()
{
    int nr, i, aux, st, dr;

    FILE *fin = freopen("fact.in", "r", stdin);
    FILE *fout = freopen("fact.out", "w", stdout);

    scanf("%d", &p);

    if(p==0) {
    printf("0");
    }
    else {

    printf("%lld", binar(1,5*p));
    }


}