Cod sursa(job #396524)

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