Pagini recente » Cod sursa (job #2178027) | Cod sursa (job #2976276) | Cod sursa (job #2770277) | Cod sursa (job #1011054) | Cod sursa (job #689)
Cod sursa(job #689)
#include <stdio.h>
#include <math.h>
long n,m;
int suma(int j,int k)
{
long s=0;
for (int i=1;i<=k;i++)
s+=floor(j/pow(5,i));
return s;
}
int fact(long p)
{int i;long a,b,j;
if (p==0) return 1;
else
{
m=1;
for(i=1;m<=p;i++)
m+=pow(5,i);
m-=pow(5,--i);
a=ceil(p*pow(5,i)/m);
b=floor((p+i)*pow(5,i)/m);
for(j=a;j<=b;j++)
if (suma(j,i)==p) return j;
return -1;
}
}
int main(char *argv[],int argc)
{
long p;
int i;
FILE *f;
f=fopen("fact.in","rt");
fscanf(f,"%d",&p);
fclose(f);
f=fopen("fact.out","wt");
i=fact(p);
fprintf(f,"%d",i);
return 0;
}