Cod sursa(job #2776272)

Utilizator PierrePierre Alex Pierre Data 19 septembrie 2021 10:07:50
Problema Factorial Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 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;
    int n = -1;
    int l = 1,r = 100000000,m,k;
    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;
}