Pagini recente » Cod sursa (job #2059884) | Cod sursa (job #980009) | Cod sursa (job #1605623) | Cod sursa (job #1099392) | Cod sursa (job #788899)
Cod sursa(job #788899)
#include <fstream>
#include <cmath>
#define inputFile "fact.in"
#define outputFile "fact.out"
#define MAX 16000
using namespace std;
int p, n;
int countZ( int end){
int res = 0;
int 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 countDigits = 0;
int tmp;
int count = 0;
int start =0;
int end = MAX;
ofstream output;
output.open(outputFile);
int res;
while(start <= end){
int mid = (start + end)/2;
res = countZ( mid) ;
if(res >= p)
end = mid-1;
else if(res < p)
start = mid +1;
}
if(countZ(start) != p)
start = -1;
output << start << endl;
output.close();
}