Pagini recente » Cod sursa (job #560327) | Cod sursa (job #3002588) | Cod sursa (job #993511) | Cod sursa (job #568763) | Cod sursa (job #788903)
Cod sursa(job #788903)
#include <fstream>
#include <cmath>
#define inputFile "fact.in"
#define outputFile "fact.out"
#define MAX 100000000
using namespace std;
long p, n;
long countZ( long end){
long res = 0;
long localMax = log2(end)/log2(5);
for(int k=1; k<=localMax; k++){
res += (floor)((long double) end / pow((double) 5, (double) k));
}
return res;
}
int main(){
ifstream in(inputFile);
in>>p ;
int start = 0;
int end = MAX;
ofstream output;
output.open(outputFile);
long res;
if(p == 0)
start = 1;
else{
while(start < end){
int mid = (start + end)/2;
res = countZ( mid) ;
if(res >= p)
end = mid;
else
start = mid +1;
}
if(countZ(start) != p)
start = -1;
}
output << start << endl;
output.close();
}