Pagini recente » Cod sursa (job #143835) | Cod sursa (job #2038929) | Cod sursa (job #1925561) | Cod sursa (job #1994403) | Cod sursa (job #2713545)
#include <fstream>
using namespace std;
long long prod, i, j, nrZero, p, st, dr;
ifstream fin ("fact.in");
ofstream fout("fact.out");
int main () {
fin>>p;
st = 1; dr = p*5;
while (st <= dr){
int mid = (st + dr)/2;
nrZero = 0;
int p5 = 5;
while (p5 <= mid) {
nrZero += mid/p5;
p5 *= 5;
}
/// nrZero inseamna cate zerouri are la final mid!
if(nrZero < p)
st = mid+1;
else
dr = mid-1;
}
/// st va ramane pe acea valoare al carei factorial are cel putin p zerouri
nrZero = 0;
int p5 = 5;
while (p5 <= st) {
nrZero += st/p5;
p5 *= 5;
}
if (nrZero == p)
fout<<st;
else
fout<<-1;
}