Pagini recente » Cod sursa (job #2371837) | Cod sursa (job #990046) | Cod sursa (job #1745444) | Cod sursa (job #1331625) | Cod sursa (job #12745)
Cod sursa(job #12745)
#include<stdio.h>
void compl(int v[],int k,int p){
int c=0,i;
for(i=1;i<=p;i++){
if(i%k==0) c=i/k;
v[i]=v[i]+c;
}
}
int cautbin(int v[],int p){
int s,d,m,este=0;
s=1;
d=p;
while((s<=d)&&(!este)){
m=(s+d)/2;
if(p==v[m]) este=1;
else{
if(p<v[m]) d=m-1;
else s=m+1;
}
}
if(este) return m*5;
return -1;
}
int main(){
FILE *f1,*f2;
f1=fopen("fact.in","r");
int p,i,v[1000],k;
fscanf(f1,"%d",&p);
f2=fopen("fact.out","w");
if(p==0) fprintf(f2,"1");
else{
for(i=1;i<=p;i++)
v[i]=i;
k=5;
while(k<=p){
compl(v,k,p);
k*=5; }
i=cautbin(v,p);
fprintf(f2,"%d",i);
}
fprintf(f2,"\n");
fclose(f1);
fclose(f2);
return 0;
}