Cod sursa(job #1074254)

Utilizator bghimisFMI Ghimis Bogdan bghimis Data 7 ianuarie 2014 13:35:06
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
#include <iostream>
using namespace std;

ifstream in ("fact.in");
ofstream out("fact.out");

int nr_zerouri (int a)
{
	int suma = 0, p = 5;
	while (p <= a)
    {
        suma += a / p;
        p = p * 5;
    }

    return suma;
}

int main()
{
	int n; in >> n;

	int stanga = 1; int dreapta = 500000000;

	if (n == 0)
	{
		out << 1;
		return 0;
	}

	int middle = 0; int rasp = -1;
	while (stanga <= dreapta)
	{
		middle = (dreapta + stanga) >> 1;
		int zerouri = nr_zerouri(middle);

		if (zerouri == n)
		{
			rasp = middle;
			dreapta = middle - 1;
		}
		else
			if (zerouri > n)
				dreapta = middle - 1;
			else
				stanga = middle + 1;
	}

	out << rasp;
	return 0;
}