Cod sursa(job #1797815)

Utilizator FurutaNimura Furuta Furuta Data 4 noiembrie 2016 19:22:21
Problema Factorial Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <iostream>
#include <fstream>
#define NMax 1000000000
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
int n;

long long nr0(int k)
{
    int p=5;
    long long rez=0;
    while(k/p>0)
    {
        rez+=k/p;
        p*=5;
    }
    return rez;
}

int cautare(int a, int b)
{
    if(b-a==1 || a-b==1) return 0;
    else if(nr0((a+b)/2)==n) return (a+b)/2;
    else if(nr0((a+b)/2)>n)
        return cautare(a, (a+b)/2-1);
    else
        return cautare((a+b)/2+1, b);
}

int main ()
{
    f >> n;
    int val=cautare(0, NMax);
    if(val==0)
    {
        g << -1;
        return 0;
    }
    while(nr0(val)==n) val--;
    g << val+1;



}