Cod sursa(job #2973574)

Utilizator alexscanteieScanteie Alexandru alexscanteie Data 1 februarie 2023 11:44:41
Problema Factorial Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>
#include <iostream>
#include <vector>
#define INT_MAX 2147483647

using namespace std;

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

int p,n;

int nr_zerofact(int n){
    int p = 5, nr = 0;
    while(p<=n)
    {
        nr+=n/p;
        p*=5;
    }
    return nr;
}

int cb(int p)
{
    int ans=-1, numberOfzero;
    int st=1, dr=INT_MAX;
    while(st<=dr)
    {
        int mij=(st+dr)/2;
        int mij_zero=nr_zerofact(mij);
        if(mij_zero>=p)
        {
            ans=mij;
            numberOfzero=mij_zero;
            dr=mij-1;
        }
        else
        {
            st=mij+1;

        }
    }
    if(numberOfzero!=p)
    {
        ans=-1;
    }
    return ans;
}


int main(){
    int p;
    fin>>p;
    fout<<cb(p);
    return 0;
}