Pagini recente » Cod sursa (job #2802752) | Cod sursa (job #871386) | Cod sursa (job #1883098) | Cod sursa (job #1410966) | Cod sursa (job #230446)
Cod sursa(job #230446)
#include<stdio.h>
long nr(long n5)
{
p5=0;
while(p5<p)
{
n+=5;
n5=n;
while(n5%5==0)
{
p5++;
n5/=5;
}
}
return n;
}
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;
}