Cod sursa(job #61397)

Utilizator yoyolichIoana Ardeleanu yoyolich Data 19 mai 2007 11:50:45
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <cstdio>

int n,p,i;
int zero(int x)
{
 int sum=0;
 
 while (x)
 {
  sum+=x/5;
  x/=5;
 }
 return sum;
}

int cautare(int a, int b)
{
 int r;
 if (a<b)
 {
 r=zero(5*(a+b)/2);
 if (r>p) return cautare(a,(a+b)/2);
 if (r<p) return cautare(((a+b)/2+1),b);
 if (r==p) return (a+b)/2;
  }
 else
  return (a+b)/2;
}
int main()
{
  freopen("fact.in", "r", stdin);
  scanf("%d\n", &p);
  freopen("fact.out", "w", stdout); 
  n=cautare(1,100000000);

  if (p==0) printf("1\n");
else
{
  if (zero(5*n)==p) printf("%d\n", 5*n);
  else printf("-1\n");
}
 return 0;
}