Cod sursa(job #883778)

Utilizator Daniel_BotBot Cristian Daniel Daniel_Bot Data 20 februarie 2013 13:00:54
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <iostream>
#include <fstream>
using namespace std;

int p;

int determinaNrZerouri(long long int nr)
{
    int s=0;
    while(nr>=5)
    {
        s+=nr/5;
        nr/=5;
    }
    return s;
}

long int cautareBinara(int st,long long int dr)
{
    long long int mij;
    long int sol=-1;
    while(st<=dr)
    {
        mij=(st+dr)/2;
        if(determinaNrZerouri(mij)<p)
        {
            st=mij+1;
        }
        else if(determinaNrZerouri(mij)>p)
        {
            dr=mij-1;
        }
       else
        {
            sol=mij;
            dr=mij-1;
        }
    }
    return sol;
}

int main()
{
    freopen("fact.in","r",stdin);
    freopen("fact.out","w",stdout);
    scanf("%d",&p);
    if(p==0)
        printf("1");
    else
        printf("%ld",cautareBinara(1,1000000000LL));

}