Cod sursa(job #2549001)

Utilizator alexevladgabrielAlexe Vlad alexevladgabriel Data 17 februarie 2020 11:02:43
Problema Factorial Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int putere(int k){
    int nr=0;
    int y=5;
    while(k>=y)
    {
        nr=nr+k/y;
        y=y*5;
    }
    return nr;
}

int x,y,st,dr,mij;
int main()
{
    int p,nrz;
    fin>>p;
    if(p==0)
    {
        fout<<-1;
        return 0;
    }
    st=1; dr=2000000000;
    while(st<=dr)
    {
        mij=(st+dr)/2;
        nrz=putere(mij);
        if(nrz==p)
            break;
        else if(nrz<p)
                st=mij+1;
            else
                dr=mij-1;
    }
        if(nrz==p)
        {
            fout<<mij-mij%5;
        }
        else
            fout<<-1;
        return 0;
}