Pagini recente » Cod sursa (job #824998) | Cod sursa (job #3327616) | Cod sursa (job #2250761) | Cod sursa (job #614825) | Cod sursa (job #315495)
Cod sursa(job #315495)
#include<stdio.h>
long long p;
unsigned long long fact(unsigned long long k)
{unsigned long long rez=0,cat;
cat=k/5;
while(cat)
{rez+=cat;
cat/=5;
}
return rez;
}
int main()
{FILE *f=fopen("fact.in","r");
FILE *g=fopen("fact.out","w");
unsigned long long st,dr,c,aux,cc;
fscanf(f,"%lld",&p);
fclose(f);
if(p==0)
{fprintf(g,"1");
fclose(g);
return 0;
}
dr=1<<31;
dr/=5;
dr-=dr%5;
st=1;
while(st<dr)
{
c=st+dr; c>>=1;
cc=c*5;
aux=fact(cc);
if(aux<p) st=c+1;
else if(aux>p) dr=c-1;
else
{fprintf(g,"%lld",cc);
fclose(g);
return 0;
}
}
if(st==dr && fact(st*5)==p)
{fprintf(g,"%lld",st*5);
fclose(g);
return 0;
}
fprintf(g,"-1");
fclose(g);
return 0;
}