Cod sursa(job #1283131)

Utilizator dnprxDan Pracsiu dnprx Data 5 decembrie 2014 09:12:57
Problema Factorial Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
//#include <iostream>

using namespace std;

int NrZ(int n)
{
    int q, k;
    q = 5;
    k = 0;
    while (q <= n)
    {
        k += (n / q);
        q *= 5;
    }
    return k;
}

int main()
{
    int st, dr, sol, m;
    int p, x;
    ifstream fin("factorial.in");
    fin >> p;
    fin.close();

    st = 1;
    dr = 2000000000;
    while (st <= dr)
    {
        m = (dr - st) / 2 + st;
        //cout << m << "\n";
        x = NrZ(m);
        if (x == p)
        {
            sol = m;
            dr = m - 1;
        }
        else if (x > p) dr = m - 1;
        else st = m + 1;
    }

    ofstream fout("factorial.out");
    fout << sol << "\n";
    //fout << NrZ(126);
    fout.close();

    return 0;
}