Pagini recente » Cod sursa (job #2963325) | Cod sursa (job #2892155) | Cod sursa (job #3239120) | Cod sursa (job #597813) | Cod sursa (job #1977692)
/*
solutie bazata pe cautare binara care foloseste o functie de calculare
zerouri factorial si se opreste atunci cand zero(mid) == P
*/
#include <fstream>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
long long int zero(int k) {
long long int sum = 0;
while (k) {
sum += k / 5;
k /= 5;
}
return sum;
}
int P;
long int cautbin(){
long lo = 0, hi = 10000,mid;
while(lo <= hi){
mid = (hi - lo)/2 + lo;
long best = zero(mid);
if(best == P){
return mid - mid % 5;
}else if(best < P){
lo = mid + 1 ;
}else{
hi = mid - 1;
}
}
return -1;
}
int main()
{
in>>P;
if(P){
out<<cautbin();
}else{
out<<"1";
}
}