Cod sursa(job #972231)

Utilizator vladttturcuman vlad vladtt Data 11 iulie 2013 12:12:09
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>
#define Total 500000000
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
long i,mj,s,d,y,k,p5[13];
long zero()
{
    long r=0,j=0;
   for(j=1;j<=12;j++)
        r=r+mj/p5[j];
    return r;
}
void puteri()
{
    p5[0]=1;
    for(i=1;i<=12;i++)
        p5[i]=p5[i-1]*5;
}
int main()
{
    puteri();
    fin>>k;
    if(k==0)    {fout<<1; return 0;}
    s=1,d=Total;
    while(s<=d)
    {
        mj=(d+s)/2;
        y=zero();
        if(y>k) d=mj-1;
        else
            if(y<k) s=mj+1;
            else
            {
                fout<<mj-mj%5<<'\n';
                return 0;
            }
    }
    fout<<-1<<'\n';
    return 0;
}