Cod sursa(job #1113695)

Utilizator RazvanR104Razvan-Andrei Ciocoiu RazvanR104 Data 20 februarie 2014 20:28:34
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <cstdio>

using namespace std;

int nr_0(int n)
{
    int imp = 5, s = 0;
    while (n / imp)
    {
        s += n / imp;
        imp *= 5;
    }
    return s;
}

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

	int P, mij, in = 1, sf, gasit = 0, val;
	scanf("%d", &P);
	sf = 5 * P;

	for (mij = (in + sf) >> 1; in <= sf; mij = (in + sf) >> 1)
    {
        val = nr_0(mij);
        if (val == P)
        {
            gasit = 1;
            break;
        }
        else if (val > P)
            sf = mij - 1;
        else in = mij + 1;
    }

    if (gasit)
        printf("%d\n", mij - mij % 5);
    else if (P == 0) printf("1\n");
    else printf("-1\n");

	fclose(stdout);
    return 0;
}