Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in /home/bateeqjg/public_html/news/wp-content/plugins/wp-syntax/wp-syntax.php on line 380
Warning: Undefined array key "layout" in /home/bateeqjg/public_html/news/wp-content/plugins/wp-about-author/wp-about-author.php on line 94
Javascript: Prime Factorization

Today’s code is a enhancement of Code Renaissance‘s version of “Finding Prime Numbers in Javascript”.
Main difference are the following.
- Faster performance by eliminating recursion and caching Math.sqrt.
- Whole numbers bigger than 1 return an empty array, since they’re not prime numbers.
- Decimal values are converted to whole numbers.
/** * @author Larry Battle - http://bateru.com/news/contact-me * @date May 11, 2012 * @license MIT and GPL v3 * @purpose Return the prime factors of a number. * @info - http://bateru.com/news/?s=prime+factors */ var getPrimeFactors = function(num) { num = Math.floor(num); var root, factors = [], x, sqrt = Math.sqrt, doLoop = 1 < num; while( doLoop ){ root = sqrt(num); x = 2; if (num % x) { x = 3; while ((num % x) && ((x += 2) < root)); } x = (x > root) ? num : x; factors.push(x); doLoop = ( x != num ); num /= x; } return factors; } |
Example:
getPrimeFactors(15120) // returns [2, 2, 2, 3, 3, 3, 7]
Demo:
