Cod sursa(job #3241226)

Utilizator AnduRazvanMindrescu Andu AnduRazvan Data 27 august 2024 20:03:18
Problema Factorial Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>

using namespace std;

int zero(int n)
{
    int cnt = 0;
    int p = 5;
    while ( p <= n)
    {
        cnt += n / p;
        p = p * 5;
    }
    return cnt;
}

ifstream fin ("fact.in");
ofstream fout ("fact.out");
int main()
{
    int n , p, st, dr, mij, t, k;
    fin >> p;
    dr = p * 5;
    st = 1;
    k = -1;
    while ( st <= dr)
    {
        mij = (st + dr) / 2;
        t = zero(mij);
        if(t < p)
            st = mij + 1;
        else if(t > p)
            dr = mij - 1;
        else if(t == p)
        {
            k = mij;
            break;
        }
    }
    if(k != -1)
    {
        if( k % 5 != 0)
            k = k - k % 5;
        if(p == 0)
            k = 1;
    }
    fout << k;
    return 0;
}