Cod sursa(job #2489949)

Utilizator Mc_TaviMacovei Octavian-Cosmin Mc_Tavi Data 9 noiembrie 2019 14:04:41
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <bits/stdc++.h>

using namespace std;

FILE *fin = fopen("fact.in", "r");
FILE *fout = fopen("fact.out", "w");

int P;
int test(int n);
int cautBin(int left, int right);

int main()
{
    fscanf(fin,"%d", &P);
    fprintf(fout,"%d", (P == 0) ? 1 : cautBin(1, 2e9));
    return 0;
}

int test(int n)
{
    int nrDe0 = 0, contor = 5;
    do{
        nrDe0 += n/contor;
        contor *= 5;
    }while(contor <= n);
    return nrDe0;
}

int cautBin(int left, int right)
{
    int middle = (left+right)/2;
    if(left > right)
        return -1;
    int temp = test(middle);
    if(temp < P)
        return cautBin(middle+1, right);
    if(temp > P)
        return cautBin(left, middle-1);
    return (middle/5)*5;
}