Cod sursa(job #1808556)

Utilizator MihalachiRazvanMihalachi Razvan MihalachiRazvan Data 17 noiembrie 2016 20:29:14
Problema Factorial Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <iostream>
#include <fstream>
#include <math.h>
#define dim 1000001
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
long long int p,a[5*dim],n=0;
int putere5(long long int k)
{
   long long int p1=5;
   int k1=1;
   while(p1<k)
   {
       p1=p1*5;
       k1++;
   }
   if(k1>1)
   k1=k1-1;
   return k1;

}
int putere(int k)
{
    long long int c=5,i=1;
    while(i<k)
    {
        i++;
        c=c*5;
    }
              return c;
}
int main()
{

    fin>>p;
    long long int i,j,p2=5*p,p5;
    if(p==0)
        fout<<1;
        else
     {
             for(i=1;i<=putere5(p2);i++)
         {
             p5=putere(i);
             for(j=p5;j<=p2;j=j+p5)
                a[j]=i;
         }
         for(i=5;i<=p2&&n<p;i=i+5)
            n=n+a[i];
         if(n==p)
            fout<<i-5;
         else
            fout<<-1;
     }

    fin.close();
    fout.close();
    return 0;
}