Cod sursa(job #1754383)

Utilizator xSliveSergiu xSlive Data 8 septembrie 2016 00:33:11
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <iostream>
#include <fstream>
using namespace std;

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

long long st=1,dr = 1000000000;
long long mij;
bool gasit = false;
long long n0,p;

long long func(long long n){
    long long p=1,s=0;
    while(p<=n){
        p=p*5;
        s=s+n/p;
    }
    return s;
}

int main()
{
    f >> p;
    f.close();
    if(p == 0){
            g << 1;
            g.close();
            return 0;
    }
    while(st <= dr && !gasit){
            mij = (st + dr) / 2;
            n0 = func(mij);
            if(n0 == p) gasit = true;
            else if(n0 < p) st = mij + 1;
            else dr = mij - 1;
    }
    if(!gasit)  g << -1;
    else{
        while(mij%5)    mij--;
        g << mij;
        g.close();
    }
    return 0;
}