Cod sursa(job #1046804)

Utilizator mads2194FMI - Andrei Stroe mads2194 Data 3 decembrie 2013 16:29:10
Problema Factorial Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <cstdio>
#include <cstdlib>
#include <ctime>

#define N 1<<18

using namespace std;

long long ok(int val)
{
    long long i,k=0;
    /*for(int i=5;i<val;i+=5)
    {
        //++k;
        ++k;
    }*/
    for(i=5;i+5<=val;i*=5)
    {
        k+=val/i;
    }

    return k;
}

long long binsearch(int x)
{
    long long i,step = N;
    for(i=0;step;step>>=1)
    {
        //printf("ok(i+step): %d; i+step: %d\n",ok(i+step),i+step);
        if( ok(i+step)<x )
            i+=step;
    }
    //while(ok(i)<x) ++i;
    if(ok(++i)==x) return i;
    return -1;
}

int main()
{
    freopen("fact.in","r",stdin);
    freopen("fact.out","w",stdout);
    int p;
    scanf("%d",&p);

    for(int i=0;i<=200;++i)
        printf("%d: %lld \n",i,binsearch(i));
    return 0;
}