Cod sursa(job #1468484)

Utilizator mirupetPetcan Miruna mirupet Data 6 august 2015 10:51:40
Problema Factorial Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<cstdio>
#define MAX 1000000
using namespace std;

int P;
long long put, NR, ans = -1, div, st, dr;

int nr_zero(int n)
{
    int nr = 0;
    while (n)
    {
        nr += n/5;
        n /= 5;
    }

    return nr;
}

int main()
    {
        freopen("factorial.in","r",stdin);
        freopen("factorial.out","w",stdout);

        scanf("%d", &P);

        st = 1;
        dr = MAX;

        while ( st <= dr)
        {
            div = (st + dr) / 2;

            NR = nr_zero(div);

            if (P > NR)
                st = div + 1;
            else
            {
                dr = div - 1;
                if (P == NR)
                    ans = div;
            }
        }

        printf("%lld", ans);
    }