Pagini recente » Cod sursa (job #797124) | Cod sursa (job #1946117) | Cod sursa (job #2954020) | Cod sursa (job #400914) | Cod sursa (job #1799092)
//Factorial
#include <fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
#define DMAX 10000000
long long N, P;
long long nrZerouri(long long nr) {
long long nrzero = 0, put5 = 5;
while(nr/put5 > 0) {
nrzero += nr/put5;
put5 *= 5;
}
return nrzero;
}
long long cautareBinara(long long left, long long right) {
if(left <= right) {
long long middle = (left + right)/2, nr;
nr = nrZerouri(middle);
if(nr == P) return middle;
else if(nr > P) return cautareBinara(left, middle-1);
else return cautareBinara(middle+1, right);
}
return 0;
}
int main()
{
fin>>P;
if(P == 0) { fout<<1; return 0; }
N = cautareBinara(0, DMAX);
if(N == 0) { fout<<-1; return 0; }
while(nrZerouri(N) == P) N--;
fout<<N+1;
fin.close();
fout.close();
return 0;
}