Pagini recente » Cod sursa (job #887848) | Cod sursa (job #556340) | Cod sursa (job #459851) | Cod sursa (job #2629233) | Cod sursa (job #1698158)
#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();
}