Cod sursa(job #1216672)

Utilizator valentin11cCraciun Valentin-Gabriel valentin11c Data 5 august 2014 13:25:54
Problema Factorial Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
int n,sol,p;

int calc_nrz(int l)
{
    int nr=0,p=5,so=0,x;
    for(;;)
    {
        x=l/p;
        if(x==0) break;
        so+=x;
        p*=5;
    }
return so;
}

int bin(int li,int lf)
{
    int k,nrz;lf++;
    while(li<lf)
    {
        k=(li+lf)/2;
        nrz=calc_nrz(k);
        if(nrz==n) return k;
        if(nrz>n) lf=k;
        if(nrz<n) li=k+1;
        //cout<<k<<" "<<nrz<<"\n";
    }
if(nrz<n) return -1;
    return k;
}

int main()
{

    f>>n;
if(n<0) g<<-1;
else
{
  if(n==0) g<<1;
  else
  {

   p=bin(1,5*n);
   if(p==-1) g<<p;else
   {
   while(p%5!=0) p--;

   g<<p;
   }
  }
}


    return 0;
}