Cod sursa(job #1515466)

Utilizator adu18sptAndrei Mircea adu18spt Data 1 noiembrie 2015 17:29:01
Problema Factorial Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include<fstream>
#include<cmath>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
unsigned long long int cautbin(unsigned long long int val);
unsigned long long int a[10000001],p,k=25,i,m=1,t=0,x=0,aux;
int main()
{


    fin>>p;
    a[1]=1;
    for(i=2;i<=10000000;i++)
    {
        t=0;
        aux=i;
        while(aux!=0)
        {
            if(aux%5==0)
            {
                t++;
            }
            else{
                break;
            }
            aux=aux/5;
        }
        a[i]=a[i-1]+1+t;
    }

    x=cautbin(p);

    if(a[x]==p)
    {

        fout<<x*5;
    }
    else
    {
        fout<<-1;
    }

}
unsigned long long int cautbin(unsigned long long int val)
{
    unsigned long long int step=100000000, start = 0;
    for(;step;step>>=1)
    {
        int index=step+start;
        if(index>10000000) continue;
        if(a[index]<=val)
        start=index;
    }
    return start;
}