Pagini recente » Cod sursa (job #3251519) | Cod sursa (job #129542) | Cod sursa (job #199185) | Cod sursa (job #1394157) | Cod sursa (job #480231)
Cod sursa(job #480231)
// Afla ce numar factorial are p cifre de zero la final
#include <fstream>
using namespace std;
int main() {
FILE* fin = fopen("fact.in","r");
FILE* fout = fopen("fact.out","w");
int p, nr_zero, old;
unsigned long long int l, r, m;
bool flag = true;
fscanf(fin, "%d", &p);
fclose(fin);
if (p==0) {
fprintf(fout, "%d", 1);
fclose(fout);
return 0;
}
old = -1;
l = 0;
r = 10000000000;
while ((l!=r) && (flag)) {
m = (l+r) / 2;
flag = (m!=old);
nr_zero = 0;
int tmp = m;
while ( tmp>=5) {
nr_zero += tmp/5;
tmp = tmp/5;
}
if (p>nr_zero)
l = m;
else if (p<nr_zero)
r = m;
else l = r;
old = m;
}
if (!flag) {
fprintf(fout, "%d", -1);
fclose(fout);
return 0;
}
while (m%5!=0)
m--;
fprintf(fout, "%lld", m);
fclose(fout);
return 0;
}