Cod sursa(job #1074246)

Utilizator bghimisFMI Ghimis Bogdan bghimis Data 7 ianuarie 2014 13:30:08
Problema Factorial Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 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 = 1000000000;

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

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

		if (zerouri == n && middle % 5 == 0)
		{
			out << middle;

			return 0;
		}
		else
			if (zerouri >= n)
				dreapta = middle - 1;
			else
				stanga = middle;
	}

	return 0;
}