Cod sursa(job #585073)

Utilizator krityxAdrian Buzea krityx Data 27 aprilie 2011 22:09:06
Problema Factorial Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>
#include <iostream>
#define MAXV 0x3f3f
#define ll long long

using namespace std;

ll fives(ll x)
{
	ll i,nr=0,aux;
	if(x<5) return 0;
	else 
		for(i=5;i<=x;i+=5)
		{
			aux=i;
			while(aux%5==0)
			{
				nr++;
				aux/=5;
			}
		}
		return nr;
	
}

int main()
{
	ifstream f("fact.in");
	ofstream g("fact.out");
	
	ll p,n,start=0,end=MAXV,mid,x,i;
	f>>p;
	
	mid=(start+end)/2;
	x=fives(mid);
	while(x!=p && start!=end)
	{
		if(x<p) 
		{
			start=mid+1;
			mid=(start+end)/2;
			x=fives(mid);
		}
		else if(x>p)
		{
			end=mid-1;
			mid=(start+end)/2;
			x=fives(mid);
		}
	}
	
	
	
	for(i=mid;fives(i)==p;i--)
	{
		;
	}
	g<<i+1;
	f.close();
	g.close();
	return 0;
}