Cod sursa(job #480546)

Utilizator dcm9000Dinu Cristian Mircea - UPB dcm9000 Data 28 august 2010 14:50:17
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <iostream>
#include <algorithm>
#include <fstream>
#include <string>

using namespace std;

#define FILE_IN "fact.in"
#define FILE_OUT "fact.out"

unsigned int N;

unsigned int zerofact(unsigned int n)
{
	unsigned int numzero = 0;

	unsigned int fac = 5;

	while (fac <= n)
	{
		numzero += n/fac;
		fac *= 5;
	}

	return numzero;
}

int main()
{
	ifstream fisIn(FILE_IN);
    ofstream fisOut(FILE_OUT);

    fisIn >> N;

    unsigned int min = 1;
    unsigned int max = 1000000000;

	int gasit = -1;
    while (min<max)
    {
		unsigned int piv = (min+max)/2;

		unsigned int val = zerofact(piv);

		if (val == N) gasit = piv;
		if (val < N) min = piv+1; else max = piv;
	}

	fisOut << gasit;
}