Cod sursa(job #1833546)

Utilizator MihalachiRazvanMihalachi Razvan MihalachiRazvan Data 22 decembrie 2016 16:45:11
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
long long int p,a[13],n,s;
long int putere5(long long int k)
{
    long long int k1=0;
    while(k%5==0)
    {
        k=k/5;
        k1++;
    }
    return k1;
}

int main()
{

 a[1]=5;
 a[2]=25;
 a[3]=125;
 a[4]=625;
 a[5]=pow(5,5);
 a[6]=pow(5,6);
 a[7]=pow(5,7);
 a[8]=pow(5,8);
 a[9]=pow(5,9);
 a[10]=pow(5,10);
 a[11]=pow(5,11);
 a[12]=pow(5,12);
    fin>>p;
    if(p==0)
        fout<<1;
    else if(p<5)
        fout<<5*p;
     else if(p>=5)
    {
        n=5*p;
        n=n/25;
        n=p-n;
        n=n*5;
        while(s<p)
        {
            s=0;
            int sw=1;
            for(int i=1;i<=12&&sw;i++)
                if(n<a[i])
                sw=0;
            else
                s=s+n/a[i];
           if(s>p)
            n=-1;
           else if(p-s>0)
                n=n+5;

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