Cod sursa(job #502965)

Utilizator mraresMardare Rares mrares Data 20 noiembrie 2010 22:50:53
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
#define nmax 1000000000

using namespace std;

ifstream f("fact.in");
ofstream g("fact.out");

int p; long long answer;

int nr_zero(int x)
{
    int s=0;
    while(x)
    {
        s+=x/5;
        x/=5;
    }
    return s;
}

int caut_binar()
{
    long long left=0, right=nmax, m;
    int ok=-1;
    while(left<right)
    {
        m=(left+right)/2;
        if(nr_zero(m)==p) ok=1;
        if(nr_zero(m)<p)
            left=m+1;
        else
            right=m;
    }

    //if(nr_zero(m)!=p)
        //return -1;

    if(nr_zero(m)==p) ok=1;
    m=(left+right)/2;

    if(nr_zero(m)==p) ok=1;
    if(nr_zero(m)<p)
        ++m;

    if(ok!=-1) return m;
    return -1;
}

int main()
{
    f>>p;
    answer=caut_binar();
    if(p==0) g<<1;
    else g<<answer;
    return 0;
}