Cod sursa(job #675845)

Utilizator dica69Alexandru Lincan dica69 Data 8 februarie 2012 12:47:51
Problema Factorial Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <cstdio>
#include <climits>

using namespace std;

long p,n,i,x,d,st,dr,c;

long zero(long x)
{long d=5,s;
s=0;
while (x/d>0)
{s=s+x/d;
d*=5;}
return s;
}

int main()
{FILE *f1 = fopen("fact.in","r");
FILE *f2 = fopen("fact.out","w");

fscanf(f1,"%ld",&p);

st=1;dr=p*5+1;
while (st<=dr)
{c=(st+dr)/2;
if (p<zero(c)) dr=c-1;
else if (p>zero(c)) st=c+1;
else {n=c;break;}
if (zero(dr)<p || zero(st)>p) {fprintf(f2,"-1");return 0;}
}
while (zero(n)==p) n--;
if (p==0) fprintf(f2,"1");
else fprintf(f2,"%ld",n+1);
fclose(f1);fclose(f2);
    return 0;
}