Cod sursa(job #2776284)

Utilizator PierrePierre Alex Pierre Data 19 septembrie 2021 10:29:00
Problema Factorial Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int nr_de_zerouri(int n);

int main()
{
    int p;
    fin >> p;
    if(p == 0)
    {
        fout << 1;
    }
    else
    {
        int l = 5, r =100000000, m, k, n = -1;
        while(l <= r)
        {
            m = (l + r) / 2 % 5;
            k = nr_de_zerouri(m);
            if(k == p)
            {
                n = m;
                break;
            }
            else if(k > p)
            {
                r = m - 5;
            }
            else
            {
                l = m + 5;
            }
        }
        fout << n;
    }
    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;
}