Cod sursa(job #7881)

Utilizator radamiRadu Patulescu radami Data 22 ianuarie 2007 21:01:52
Problema Factorial Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <fstream>


int main ()
 {

 long P,y,pres,presc=0,adaugat=0;

 std::fstream f ("fact.in");
 f>>P;
 f.close();

 pres=P*4;
 presc+=pres/5;
 presc+=pres/25;
 presc+=pres/125;
 presc+=pres/625;
 presc+=pres/3125;
 presc+=pres/15625;
 presc+=pres/78125;
 presc+=pres/390625;
 presc+=pres/1953125;
 presc+=pres/9765625;
 presc+=pres/48828125;
 presc+=pres/244140625;
 presc+=pres/1220703125;

 if  (presc<P)
  {
 while (pres%5!=0)
  {
   pres+=1;
   adaugat=1;
  }
  if (adaugat)
   {
    y=pres;
    while ((y%5==0) && (y>0))
     {
      presc++;
      y/=5;
     }
   }

 while (presc<P)
  {
   y=pres;
   while ((y%5==0) && (y>0))
    {
     y=y/5;
     presc++;

    }
   pres+=5;

  }
 }
 else
{
 while (pres%5!=0)
 {
  pres-=1;
  adaugat=1;
}
 if (adaugat)
  presc++;
 while (presc>P)
 {
  y=pres;
  while ((y%5==0) && (y>0))
  {
  y=y/5;
  presc--;
  }
  pres-=5;
}
}



 std::ofstream g ("fact.out");
 if (presc==P)
  g<<pres;
   else
  g<<-1;
 g.close();




 return 0;
 }