Cod sursa(job #2841275)

Utilizator DanDan1Dan Danubianu DanDan1 Data 29 ianuarie 2022 14:47:26
Problema Factorial Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>

using namespace std;

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


int n,p;

int nrZerouri(int n)
{
    int nr =0 ;
    int p5=5;
    while(n>=p5){
        nr += n/p5;
        p5 *= 5;
    }
    return nr;
}
int main()
{
    fin>>p;
    if(p < 0){
       fout << -1;
        return 0;
    }
    if(p == 0)
    {
        fout<<1;
        return 0;
    }
    int st = 0, dr = 10e8, mij;
    while(st <= dr)
    {
        mij =(st+dr)/2;
        int nr = nrZerouri(mij);
        if(nr == p)
        {
            n = mij;
            dr=mij-1;
        }
        else
        if(nr > p)
            dr = mij-1;
        else
            st = mij+1;
    }
    fout <<n;
    return 0;
}