Pagini recente » Cod sursa (job #2241130) | Cod sursa (job #79084) | Cod sursa (job #2083049) | Cod sursa (job #1437851) | Cod sursa (job #12716)
Cod sursa(job #12716)
#include<stdio.h>
void compl(long v[],long k,long p){
long c=0,i;
for(i=1;i<=p;i++){
if(i%k==0) c=i/k;
v[i]=v[i]+c;
}
}
long cautbin(long v[],long p){
long s,d,m;
int 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");
long p,i,v[1000],k;
fscanf(f1,"%ld",&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,"%ld",i);
}
fprintf(f2,"\n");
fclose(f1);
fclose(f2);
return 0;
}