Cod sursa(job #2973573)

Utilizator alexscanteieScanteie Alexandru alexscanteie Data 1 februarie 2023 11:42:46
Problema Factorial Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 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 cnt=0;
    int put=5;
    while(n/put){
        cnt += n/put;
        n /= 5;
    }
    return cnt;
}

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;
}