Pagini recente » Borderou de evaluare (job #3303821) | Cod sursa (job #1089239) | Cod sursa (job #3349544) | Cod sursa (job #1078232) | Cod sursa (job #602865)
Cod sursa(job #602865)
#include<stdio.h>
int fac(int n) {
if ( n == 0 )
return 1;
else return n*fac(n-1);
}
int main(){
int stanga=0;
int dreapta = 888888;
int n=0,p;
FILE *in,*out;
int temp=0,temp1=0;
in = fopen("fact.in","r");
fscanf(in,"%d",&p);
if (p !=0 ){
while (n) {
int mij=(stanga+dreapta)/2;
while(temp<p){
n++;
mij=n;
while(mij%5==0){
temp++;
mij=mij/5;
}
}
if ( mij==p && stanga==dreapta){
n=stanga;
break;
}
if (dreapta<stanga)
{
n=-1;
break;
}
if (p>mij) stanga = mij+1;
else dreapta=mij-1;
}
}
fclose(in);
out = fopen("fact.out","w");
fprintf(out,"%d",n);
fclose(out);
return 0;
}