Cod sursa(job #401195)

Utilizator attila3453Geiszt Attila attila3453 Data 22 februarie 2010 16:32:23
Problema Factorial Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include <stdio.h>
using namespace std;
int p, i=1, a, b, nr, p1;
int main(){
  freopen("fact.in", "r", stdin);
  freopen("fact.out", "w", stdout);
  scanf("%d", &p);
  if(p==0){
	printf("%d", 1);
	return 0;
  }
  while(p>=b){
	if(i>1)
	  a*=5;
	else{
	  a=1;
	  ++i;
	}
	b=b*5+1;
	if(b==p){
	  a*=5;
	  printf("%d", 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){
	  printf("%d", i);
	  return 0;
	}else
	  i+=p-p1;
  }
  printf("%", -1);
  return 0;
}