Cod sursa(job #177974)

Utilizator Snavenportnespecificat Snavenport Data 13 aprilie 2008 22:32:42
Problema Factorial Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <fstream.h>
#include <iostream.h>

ifstream f("fact.in");
ofstream g("fact.out");

long v[15]={0,5,25,125,625,3125,15625,78125,390625,1953125,9765625,48828125,244140625,1220703125},z[15]={0,1,6,31,156,781,3906,19531,97656,488281,2441406,12207031,61035156,305175781};



long nr0(long a)
{
    long nr=0;
    long b;
    
        b=a;
        while (b%5==0)
          {
              nr++;
              b=b/5;
          }
      
    return nr;
}
    

int main()
{
    long p;
    f>>p;
    if (p==0)
      g<<1;
    else
    {
    int i;
    i=1;
    while (z[i]<p)
      i++;
    i--;
    long j;
    long nrc=z[i]-nr0(v[i]);
    int sw=0;
    for (j=v[i];j<=v[i+1] && sw==0;j++)
      {
         if (p==nrc)
           {
           g<<j-1;
           sw=1;
           }
         nrc=nrc+nr0(j);
         
      }
    if (sw==0)
      g<<"-1"; 
       }      
     
     }