Cod sursa(job #542452)

Utilizator Rares95Rares Arnautu Rares95 Data 26 februarie 2011 13:43:39
Problema Factorial Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
# include <fstream>
# define LL long long
  using namespace std;
	
	ifstream f ( "fact.in" );
	ofstream g ( "fact.out" );
	
	  LL P, N;
		
		int NRz (LL x) {
			LL p = 5, nr = 0;
			
			while (p <= x) {
			  nr += x / p;
				p *= 5;
			}
			
			return nr;
		}
		
		int main () {
			
			f >> P;
			
			LL st, dr, mij;
			
			N = -1;
			st = 1;
			dr = 10000000;
			
			while (st <= dr) {
				mij = (st + dr) / 2;
				if (NRz(mij) == P) {N = mij; break;}
				  else if (NRz(mij) < P) st = mij + 1;
						else dr = mij - 1;
			}
			
			if (N != -1) N = N - (N % 5);
			g << N << '\n';
			
			g.close ();
			return 0;
			
		}