Cod sursa(job #2791809)

Utilizator NopeCarp Rafael Nope Data 31 octombrie 2021 09:18:20
Problema Factorial Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <bits/stdc++.h>
using namespace std;

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

int P;

int ZeroF(int x)
{
    int p = 5 , rasp = 0;
    while(p <= x)
    {
        rasp += x / p;
        p *= 5;
    }
    return rasp;
}

int main()
{
    fin >> P;
    int st , dr , mij , rasp = 0;
    st = 1;
    dr = 500000000;
    while(st <= dr)
    {
        mij = (st + dr) / 2;
        int r = ZeroF(mij);
        if(r < P) st = mij + 1;
        else if (r > P) dr = mij - 1;
        else
        {
            rasp = mij - (mij % 5);
            break;
        }
    }
    if(rasp == 0) fout << "-1\n";
    else fout << rasp << "\n";
    return 0;
}