Pagini recente » Cod sursa (job #3144392) | Cod sursa (job #2206187) | Cod sursa (job #3182141) | Cod sursa (job #2546666) | Cod sursa (job #81577)
Cod sursa(job #81577)
#include<stdio.h>
FILE *fin,*fout;
long p, putere,n;
void citire()
{
fin=fopen("fact.in","r");
fout=fopen("fact.out","w");
fscanf(fin,"%ld",&p);
fclose(fin);
}
void afisare(long nr)
{
fprintf(fout,"%ld\n",nr);
fclose(fout);
}
long div5(long n)
{
long nr; nr=0;
while (n%5==0)
{nr++; n/=5;}
return nr;
}
void calc()
{
long i,j,ad,d;int ok;
ad=0;ok=1;i=1; putere=5;
while (putere<=n)
{
i++;
putere*=5;
if (putere<=n)
{ad+=i-1;
j=1;
do{
j++;
if (j%5!=0)
if (putere*j<=n) ad+=i-1;
}while (putere*j<=n);
}
}
while (ad&&ok)
{
d=div5(n);
if (ad>=d) {ad-=d; n-=5;}
else ok=0;
}
if (ok) afisare(n);
else { fprintf(fout,"-1\n"); fclose(fout);}
}
int main()
{
citire();
if (p==0) {fprintf(fout,"1\n");fclose(fout);}
else if (p>=0)
{n=p*5;
calc();
}
else {fprintf(fout,"-1\n");fclose(fout);}
return 0;
}