Cod sursa(job #1823337)

Utilizator ZeBuGgErCasapu Andreas ZeBuGgEr Data 6 decembrie 2016 11:05:44
Problema Factorial Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<cstdio>

using namespace std;

long long int p,v=1,nr;

long long int find0s(int val)
{
    long long int nr0s=0;
    while(val!=0)
    {
        val/=5;
        nr0s+=val;
        //printf("* %d\n\n",nr0s);
    }
    return nr0s;
}

int main()
{
    freopen("fact.in","r",stdin);
    freopen("fact.out","w",stdout);
    for(int i=1;i<=27;i++)
    {
        v<<=1;
    }
    scanf("%lld",&p);
    while(v!=0)
    {
        //printf("%d %d\n",find0s(nr+v),v);
        if(find0s(nr+v)<p)
        {
            nr+=v;
        }
        v>>=1;
    }
    nr++;
    if(find0s(nr)==p)
    {
        printf("%lld",nr);
    }
    else
    {
        printf("-1");
    }
}