Cod sursa(job #230446)

Utilizator emy2704S Octav emy2704 Data 13 decembrie 2008 22:42:23
Problema Factorial Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#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; 
}