Pagini recente » Cod sursa (job #2138625) | Cod sursa (job #1729645) | Cod sursa (job #1869048) | Cod sursa (job #253800) | Cod sursa (job #2004236)
#include <iostream>
#include <fstream>
#include <climits>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
long long p;//date de intrare
void citire(){
in >> p;
}
long long nrZerouri(long long nr){
long long nrZ = 0;
while(nr != 0){
nrZ += nr / 5;
nr /= 5;
}
return nrZ;
}
int sol = 0;
void cautareBinara(long long & st, long long dr){
if(st <= dr){
long long mij = st + (dr - st) / 2;
long long var = nrZerouri(mij);
//out << mij << ' '<<var << '\n';
if(var < p)
st = mij + 1;
else
dr = mij - 1;
if(var == p)
sol = mij;
cautareBinara(st, dr);
}
}
void rezolvare(){
if(p < 0){
out << "-1";
}
else{
long long st = 1, dr = LLONG_MAX;
cautareBinara(st , dr);
out << st;
}
}
int main(){
citire();
rezolvare();
return 0;
}