Cod sursa(job #634773)

Utilizator CrescentselectJicol Crescent Crescentselect Data 17 noiembrie 2011 10:06:15
Problema Factorial Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<iostream>
#include<fstream>
using namespace std;

//cate zerouri are n!
int nr_zero(int n)
{
	int i;
	int s=0;
	for(i=5;i<n;i*=5) {
		s += n/i;
	}
	return s;
}

int cautare (int P, int stanga ,int dreapta)
{
	if(stanga <= dreapta) {
		int m = (stanga+dreapta)/2;
		int zero = nr_zero(m);
		if(P < zero) {
			dreapta = m-1;
		} else if(P > zero) {
			stanga = m+1;
		} else {
			return m;
		}
	}
	return 0;
}

int main()
{
	int P,c,n;
	ifstream f("fact.in");
	ofstream g("fact.out");
	f>>P;
    n = cautare(P,1,1000000000);
    if(n == 0) {
		if(P == 0) {
			g << 1;
		} else {
			g << -1;
		}
	} else {
		g<<n;
	}
	f.close();
	g.close();
	return 0;
}