Pagini recente » Cod sursa (job #1963481) | Jobs | Cod sursa (job #150581) | Cod sursa (job #2040711) | Cod sursa (job #230441)
Cod sursa(job #230441)
#include<stdio.h>
long nr(long n5)
{long p5=0;
do{int n55=n5;
while(n55%5==0)
{
p5++;
n55/=5;
}
n5--;}while(n5>4);
}
int main()
{
long p=0, p5=0, n=0, n5;
FILE *f;
f=fopen("fact.in", "r");
fscanf(f,"%ul",&p);
fclose(f);
unsigned long a,b,c,g;
if(p<100)
while(p5<p)
{
n+=5;
n5=n;
while(n5%5==0)
{
p5++;
n5/=5;
}
}
else
{
g=0;
a=500;
b=5000;
while(a<=b&&!g)
{
c=(a+b)/2;
if(nr(c)==p) {g=1;break;}
if(nr(c)<p){g=0;b=c;} else {g=0;a=c;}
}
}
n=(p?n:1);
f=fopen("fact.out","w");
if (nr(c)==p||p5==p) fprintf(f,"%ul\n",n);
else fprintf(f,"-1\n");
fclose(f);
return 0;
}