Cod sursa(job #2776187)

Utilizator PierrePierre Alex Pierre Data 18 septembrie 2021 19:55:46
Problema Factorial Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("fact.in");
ofstream fout("fact.out");

int multiplii[20000001];

int nr_de_zerouri(int n);
int cautare(int l,int r,int p);

int main()
{
    int p;
    fin >> p;
    multiplii[0] = 1;
    int j = 5;
    for(int i = 1; i < 20000001; i++)
    {
        multiplii[i] = j;
        j += 5;
    }
    fout << cautare(0,20000001,p);
    fin.close();
    fout.close();
    return 0;
}

int nr_de_zerouri(int n)
{
    int nr = 0;
    for(int i = 5; n / i >= 1; i *= 5)
    {
        nr += n / i;
    }
    return nr;
}

int cautare(int l,int r,int p)
{
    if(l > r)
    {
        return -1;
    }
    else
    {
        int m = (l + r) / 2;
        int k = nr_de_zerouri(multiplii[m]);
        if(k > p)
        {
            return cautare(l, m - 1, p);
        }
        else
        {
            return cautare(m + 1, r, p);
        }
    }
}