Cod sursa(job #230437)

Utilizator emy2704S Octav emy2704 Data 13 decembrie 2008 22:08:06
Problema Factorial Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#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<50)  
while(p5<p)      
{      
  n+=5;      
  n5=n;      
  while(n5%5==0)     
{      
  p5++;      
 n5/=5;      
 }      
 }

else 
{g=0;
a=1;
b=10000;
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) fprintf(f,"%ul\n",n);   
else fprintf(f,"-1\n");   
fclose(f);   
return 0; 
}