Cod sursa(job #2213309)
Utilizator | Alex Ben alex_benescu | Data | 16 iunie 2018 10:30:10 |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | c | Status | done |
Runda | Arhiva de probleme | Marime | 0.54 kb |
#include <stdio.h>
#include <stdlib.h>
int nrzero(int n){
int nr=0;
while(n>=5){
nr+=n/5;
n/=5;
}
return nr;
}
int caut(int p){
int r=0, pas=1<<28;
while(pas!=0){
if(nrzero(r+pas)<p)
r+=pas;
pas/=2;
}
r++;
return r;
}
int main(){
FILE *fin, *fout;
int p, x;
fin=fopen("fact.in", "r");
fscanf(fin, "%d", &p);
fclose(fin);
x=caut(p);
fout=fopen("fact.out", "w");
if(nrzero(x)!=p)
fprintf(fout, "-1");
else
fprintf(fout, "%d", x);
fclose(fout);
return 0;
}