Thursday, September 1, 2011

Number of Trailing zeros in n!

We use the fact that zeros occurs only when multiple of 5 gets multiplied to an even number. So it boils down to a problem of finding power of 5 in prime factorization of n!.

int countOfPrimeFactors(int n,int k) // This method gives count of prime factors of k for a given n in n! .
{
  int count=0;
  while(n>=k)
  {
    count+=n/k;
    k= k*k;
  }
  return count;
}

main()
{
  int n = 20;
  printf("Number of zeros : %d\n", countOfPrimeFactors(n,5)); // Find prime factors of 5 in n! .
}

No comments:

Post a Comment