Cod sursa(job #1011235)

Utilizator beyond_k7aOnutu Catalin beyond_k7a Data 16 octombrie 2013 16:50:32
Problema Factorial Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include<iostream>
#include<fstream>
//#include<conio.h>
using namespace std;
int nrOfZeros(int y)
{
	int x=y;
	int nrZ=x;
	while(x>=5)
	{
		x/=5;
		nrZ+=x;
	}
	return nrZ;
}
//long maxim = 80000003;
long maxim = 800003;
int findTheOne(int current,int p)
{
	if(nrOfZeros(current) == p)
		return current*5;
	if(nrOfZeros(current) < p)
		current = (current + maxim) / 2;
	else
		current /= 2;
	return findTheOne(current,p);
}
int findTheOne2(long current,long p)
{	
	int x=nrOfZeros(current);
	
	if(nrOfZeros(current) > p)
		return -1;
	if(nrOfZeros(current) == p)
		return current*5;
	return findTheOne2(current+1,p);
}

int main()
{
	long p,n=1;

	ifstream f("fact.in");
	f>>p;
	f.close();

	p=2;
	
	//n = (p==0)?1:findTheOne(maxim/2,p);
	n = (p==0)?1:findTheOne2(1,p);

	//cout<<n;
	
	
	//getch();
	ofstream g("fact.out");
	g<<n<<"\n";
	g.close();
	return 0;
}