Cod sursa(job #933009)

Utilizator TheFFOFratila Florin Ovidiu TheFFO Data 29 martie 2013 15:03:18
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <iostream>
#include <cstdio>

using namespace std;

int caut_bin(int p)
{
    int lo=1,hi=5*p,mid,k,nr;
    while(hi-lo>1)
    {
        nr=mid=lo+(hi-lo)/2;
        for(k=0;nr>=5;k+=nr/5,nr/=5);
        if(k>=p)
            hi=mid;
        else
            lo=mid;
    }
    for(k=0,nr=mid;nr>=5;k+=nr/5,nr/=5);
    if(k==p)
        return mid;
    else
        for(k=0,nr=++mid;nr>=5;k+=nr/5,nr/=5);
    if(k==p)
        return mid;
    return -1;


}

int main()
{
    freopen("fact.in","r",stdin);
    freopen("fact.out","w",stdout);
    int p;
    cin>>p;
    if(!p)
        cout<<"1";
    else
        cout<<caut_bin(p);

    return 0;
}