Cod sursa(job #1905488)

Utilizator AndreiMaximIonutMaxim Andrei AndreiMaximIonut Data 6 martie 2017 08:36:36
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>

using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int p;
int nr_zero(int x)
{
    int i,nrz=0;
    if(x<=4) return 0;
    for(i=5; i<=x; i*=5)
        nrz=nrz+(x/i);
    return nrz;

}
int cauta(int st, int dr)
{
    int mij,nr;
    if(st>dr) return -1;
    while(st<=dr)
    {
        mij=(st+dr)/2;
        nr=nr_zero(mij);
        if(nr<p)st=mij+1;
        else if(nr==p)
        {
            int r=mij%5;
            return mij-r;
        }
        else
            dr=mij-1;
    }
    if(st>dr) return -1;
}
int main()
{
    int n;
    fin>>p;
    if(p==0)
    {
        fout<<1;
        return 0;
    }
    n=cauta(1,2000000000);
    fout<<n;
    return 0;
}