Cod sursa(job #396531)

Utilizator attila3453Geiszt Attila attila3453 Data 15 februarie 2010 15:39:01
Problema Factorial Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.47 kb
#include <fstream>
using namespace std;
ifstream fi("fact.in");
ofstream fo("fact.out");
int p, i=1, a, b, nr, p1;
int main(){
  fi>>p;
  if(p==0){
	fo<<1;
	return 0;
  }
  while(p>=b){
	if(i>1)
	  a*=5;
	else{
	  a=1;
	  i++;
	}
	b=b*5+1;
	if(b==p){
	  fo<<a;
	  return 0;
	}
  }
  for(i=a+1;i<=a*5-1;){
	nr=5;
	p1=0;
	while(1)
	  if(nr<=i){
	    p1+=i/nr;
	    nr*=5; 
	  }
	  else 
	break;
	if(p1==p){
	  fo<<i;
	  return 0;
	}else
	  i+=p-p1;
  }
  fo<<-1;
  return 0;
}