Cod sursa(job #1013776)

Utilizator Mastertrap21Danceanu Madalin Mastertrap21 Data 21 octombrie 2013 18:50:09
Problema Factorial Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<fstream>
using namespace std;
int n;
 
ifstream f("fact.in");
ofstream g("fact.out");
 
long check(int nr)
{
    long fives = nr / 5;
    long c = 5;
    while(c * 5 <= nr)
    {
        fives++;
        c = c * 5;
    }
    return fives;
}
 
long search(long start, long end)
{
    long nr = start + ((end - start) / 2);
    long fives = check(nr);
    if(fives == n) return nr;
    if(start == end) return -1;
    return (fives > n) ? search(start, nr-1) : search(nr+1, end);
}
 
int main()
{
    f>>n;
	if(n == 0)
	{
		g<<1;
	}
	else if(n == 1)
	{
		g<<5;
	}
	else
	{
		long nr = search(1, 2147483647);
		while(check(nr) == n)
		{
			nr--;
		}
		nr++;
		g<<nr;
	}
	return 0;
}