Cod sursa(job #549646)
Utilizator | FMI - Roscaneanu George zeroblitz36 | Data | 8 martie 2011 20:36:28 |
---|---|---|---|
Problema | Factorial | Scor | 60 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.5 kb |
#include<cstdio>
int p,g;
FILE *in,*out;
int f(int n)
{
if(n>4)return n/5+f(n/5);
else return 0;
}
int binar(int st,int dr)
{
//printf("%d %d %d\n",st,(st+dr)/2*5,dr);
int x=f((st+dr)/2*5);
if(st>dr) return -1;
if(x==p)return (st+dr)/2*5;
else if(x>p)return binar(st,(st+dr)/2-1);
else return binar((st+dr)/2+1,dr);
}
int main()
{
in=fopen("fact.in","r");
fscanf(in,"%d",&p);
out=fopen("fact.out","w");
if(p==0)fputc('1',out);
else fprintf(out,"%d",binar(1,20000000));
}