Cod sursa(job #867626)

Utilizator Noradllrares stoica Noradll Data 29 ianuarie 2013 22:03:21
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<fstream>
#include<math.h>
using namespace std;
int main()
{
	ifstream f("fact.in");
	ofstream g("fact.out");
	int p;
	f>>p;
	
	if(p==0)
	{
		g<<1<<endl;
	}
	else
	{
		int start = p;
		int stop = p*5;
		int found = 0;
		
		while(start <= stop) {
			int mijloc = (stop+start)/2;
			int zerouri = 0;
			int i = 5;
			while(i <= mijloc) {
				zerouri += mijloc/i;
				i *= 5;
			}
			if(zerouri > p) {
				stop = mijloc-1;
			} else if(zerouri == p) {
				g<<(mijloc-mijloc%5)<<endl;
				found = 1;
				break;
			} else {
				start = mijloc+1;
			}
		}
		if(found == 0) {
			g<<-1<<endl;
		}
	}
	f.close();
	g.close();
	return 0;
}