Pagini recente » Cod sursa (job #2261901) | Cod sursa (job #3215016) | Cod sursa (job #1471992) | Cod sursa (job #372160) | Cod sursa (job #2663415)
#include <stdio.h>
#include <stdlib.h>
int cautare(int n){
int min, max, mij, put, e;
min = 1;
max = n;
while((max - min) > 1){
mij = (max + min) / 2;
e = 0;
for(put = 5; put <= mij; put *= 5){
e = e + mij / put;
}
if((n - 1) < (mij + e)){
max = mij;
}else{
min = mij;
}
}
return min;
}
int main()
{
FILE *fin, *fout;
int p, i, poz, e, put;
fin=fopen("fact.in", "r");
fscanf(fin, "%d", &p);
fclose(fin);
poz = cautare(p + 1);
e = 0;
for(put = 5; put <= poz; put *= 5){
e = e + (poz / put);
}
fout=fopen("fact.out", "w");
if(p == 0){
fprintf(fout, "1");
}else{
if((poz + e) == p){
fprintf(fout, "%d", poz * 5);
}else{
fprintf(fout, "-1");
}
}
fclose(fout);
return 0;
}