Cod sursa(job #1698158)

Utilizator perjulucianPerju Lucian Ionut perjulucian Data 3 mai 2016 21:24:18
Problema Factorial Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>
#include <iostream>

std::ifstream f("fact.in");
std::ofstream g("fact.out");

using big =  long;

big getFives(big number){
	big div = 5;
	big fives = 0;
	big rez;
	while((rez = number/div) > 0){
		fives += rez;
		div *= 5;
	}
	return fives;
}

int getNum(int P,big left,big right){
	if(left >= right){
		return -1;
	}
	big mij = (left + right)/2;
	big rez = getFives(mij);
	
	if(rez == P){
		return mij;
	}
	if(rez > P){
		return getNum(P,left,mij - 1);
	}else{
		return getNum(P,mij + 1,right);
	}

}


int main(){
	int P;
	f >> P;
	big rez = getNum(P,0,10000000);
	if(rez == -1){
		g << rez;
	}else{
		g << rez - (rez % 5);
	}
	f.close();
	g.close();
}