Cod sursa(job #1557354)

Utilizator OlivianOlivian Dan Cretu Olivian Data 27 decembrie 2015 13:04:11
Problema Factorial Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<cstdio>
using namespace std;
long long n,p;
long long zerouri(long long x)
{
    long long s=0;
    long long k=5;
    while(k<=x)
    {
        long long a=x/k;
        s+=a;
        k*=5;
    }
    return s;
}
long long cautbin(long long val)
{
    long long start=1;long long step=(1<<30);
    for(;step;step>>=1)
    {
        long long index=start+step;
        if(zerouri(index)<=val) start=index;
    }return start;
}
int main()
{
        freopen("fact.in","r",stdin);
        freopen("fact.out","w",stdout);
    scanf("%lld",&p);
    long long val=cautbin(p-1)+5;
    if(p==0) printf("1");
    else if(val==0) printf("-1"); else printf("%lld",val-val%5);
}