Pagini recente » Cod sursa (job #94734) | Cod sursa (job #1115596) | Cod sursa (job #144788) | Cod sursa (job #321381) | Cod sursa (job #2663387)
#include <stdio.h>
#include <stdlib.h>
int put[8]={5, 25, 125, 625, 3125, 15625, 78125, 390625};
int cautare(int i){
int min, max, mij;
min = 0;
max = 8;
while((max - min) > 1){
mij = (max + min) / 2;
if((i % put[mij]) != 0){
max = mij;
}else{
min = mij;
}
}
return min;
}
int main()
{
FILE *fin, *fout;
int p, i, e, st;
fin=fopen("fact.in", "r");
fscanf(fin, "%d", &p);
fclose(fin);
i = 5;
st = 0;
while((i <= p) && (st == 0)){
e = cautare(i) + 1;
p -= e;
if(p < i){
st = -1;
}else{
i += 5;
}
}
fout=fopen("fact.out", "w");
if(st == 0){
if(p != 0){
fprintf(fout, "%d", 5 * p);
}else{
fprintf(fout, "1");
}
}else{
fprintf(fout, "-1");
}
fclose(fout);
return 0;
}