Cod sursa(job #1629849)

Utilizator RaduToporanRadu Toporan RaduToporan Data 4 martie 2016 19:13:27
Problema Factorial Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <cstdio>

long long p;

long long zerouri(long long n)
{
    long long nrz=0,q=5;
    while (n>=q)
    {
        nrz=nrz+n/q;
        q=q*5;
    }
    return nrz;
}

long long cautare(long long p, long long u, long long nrz)
{
    if (p<=u)
    {
        long long mij=(p+u)/2;
        long long d=zerouri(mij);
        if (d>=nrz) return cautare(p,mij-1,nrz);
            else return cautare(mij+1,u,nrz);
    }
    else {if (zerouri(p)==nrz) return p; else return -1;}
}

int main()
{
    freopen("fact.in","r",stdin);
    freopen("fact.out","w",stdout);
    scanf("%lld",&p);
    printf("%lld\n",cautare(1,100000005,p));
    return 0;
}