Cod sursa(job #365901)

Utilizator vladiiIonescu Vlad vladii Data 20 noiembrie 2009 10:07:48
Problema Factorial Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <iostream>
#include <fstream>
using namespace std;

long v[]={5, 25, 625, 3125, 15625, 78125, 390625, 1953125, 9765625, 48828125};
int len=10;
int p;

int returnputere(int n) {
	int j=0, i;
	for(i=0; i<len; i++) {
		j+=(int)(n/v[i]);
	}
	return j;
}

int cautabinar(int val, int st, int dr) {
	while(st<dr) {
		int mij=(st+dr)/2;
		int q=returnputere(mij);
		if(q==val) { return mij; }
		else if(q<val) { st=mij+1; }
		else if(q>val) { dr=mij-1; }
	}
	return -1;
}

int main() {
	long i;
	fstream f1, f2;
	f1.open("fact.in", ios::in);
	f1>>p;
	f1.close();
	i=cautabinar(p, 1, 10000000);
	f2.open("fact.out", ios::out);
	if(i-i%5==0) { f2<<-1<<endl; }
	else { f2<<i-i%5<<endl; }
	f2.close();
	return 0;
}