Cod sursa(job #2375581)

Utilizator deiubejanAndrei Bejan deiubejan Data 8 martie 2019 10:51:07
Problema Factorial Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <iostream>
#include <fstream>
#include <climits>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
#define cin fin
#define cou fout

int cif0(int n)
{
    int p=1;
    int cif2=0;
    int cif5=0;

    while(p*2<=n)
    {
        p*=2;
        cif2+=n/p;
    }
    p=1;
    while(p*5<=n)
    {
        p*=5;
        cif5+=n/p;
    }
    return min(cif2,cif5);
}


int st,dr,mij;
int p,pf;
int main()
{
    cin>>p;
    if(p==0)
    {
        cout<<1;
        return 0;
    }
    st=1;
    dr=p*10;
    while(st<=dr)
    {
        mij=(dr-st)/2+st;
        if(st==dr)
            break;
        pf=cif0(mij);
        if(pf==p)
            dr=mij;
        else
        if(pf<p)
            st=mij+1;
        else
            dr=mij-1;
    }
    if(st>dr)
        cout<<-1;
    else
        cout<<mij;

    return 0;
}