Cod sursa(job #2075740)

Utilizator alexge50alexX AleX alexge50 Data 25 noiembrie 2017 17:16:30
Problema Factorial Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <stdio.h>

unsigned long long int getNumberOf0(unsigned long long int i);

int main()
{
    FILE *fin = fopen("fact.in", "r"),
         *fout = fopen("fact.out", "w");
    unsigned long long int p;

    fscanf(fin, "%lld", &p);

    unsigned long long int step = 1 << 63;
    unsigned long long int r = 0;

    while (step != 0)
    {
        if(getNumberOf0(r + step) < p)
            r += step;
        step /= 2;
    }

    fprintf(fout, "%lld", r + 1);

    fcloseall();
    return 0;
}

unsigned long long int getNumberOf0(unsigned long long int n)
{
    unsigned long long int p = 5;
    unsigned long long int n0 = 0;
    while(p <= n)
    {
        n0 += n / p;
        p *= 5;
    }

    return n0;
}