Cod sursa(job #2168755)

Utilizator SternulStern Cristian Sternul Data 14 martie 2018 12:11:58
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <iostream>
#include <fstream>

using namespace std;

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

long long n, p;

int ZeroSf(int x)
{
    int nr = 0;
    while(x)
    {
        nr += x/5;
        x/=5;
    }
    return nr;
}

int cauta(int st, int dr)
{
    int mid, sol = -1;
    while(st<=dr && sol == -1)
    {
        mid = st + (dr - st) / 2;
        if(ZeroSf(mid) == n){
            if(ZeroSf(mid - 1) < n)
                sol = mid;
            else while(ZeroSf(mid-1)==n)
                mid--;
            sol = mid;
        }
        else if(ZeroSf(mid) > n)
            dr = mid - 1;
        else st = mid + 1;
    }
    return sol;
}

int main()
{
    f>>n;
    if(n!=0)
        g<<cauta(0, (n+1)*5);
    else g<<1;
}