Pagini recente » Introducere in asamblare | Monitorul de evaluare | Cod sursa (job #1164089) | Cod sursa (job #1878367) | Cod sursa (job #966487)
Cod sursa(job #966487)
#include <stdio.h>
#include <stdlib.h>
long p, n;
void read() {
FILE *fin;
fin = fopen("fact.in","r");
fscanf(fin, "%d", &p);
fclose(fin);
}
int zero(int k) {
int x = 5, c = 0;
while (k / x > 0) {
c += (k / x);
x *= 5;
}
return c;
}
int search(int l,int r){
int m, x = -1;
while(l <= r){
m = l + (r - l) / 2;
if(p <= zero(m)){
x = m;
r = m-1;
}else
l = m + 1;
}
return x;
}
void write() {
FILE *fout;
fout = fopen("fact.out","w");
if(zero(search(1, 1e9)) == p)
fprintf(fout,"%d",search(1, 1e9));
else
fprintf(fout, "-1");
fclose(fout);
}
int main()
{
read();
write();
return 0;
}