Skip to content

Commit 2eca98c

Browse files
Trying to fix issues raised at build mgechev#100
1 parent 99d3f4c commit 2eca98c

File tree

1 file changed

+20
-10
lines changed

1 file changed

+20
-10
lines changed

src/primes/prime-factor-tree.js

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,29 @@
1818
* console.log(primeFactorTree(600851475143)); // [71, 839, 1471, 6857]
1919
*/
2020
exports.primeFactorTree = function (number) {
21-
var div = 2;
2221
var array = [];
23-
24-
while (number > 1) {
25-
if (number % div === 0) {
26-
number /= div;
27-
28-
array.push(div);
29-
} else {
30-
div += 1;
22+
var s = 6;
23+
while (number > 1 && number % 2 === 0) {
24+
number /= 2;
25+
array.push(2);
26+
}
27+
while (number > 2 && number % 3 === 0) {
28+
number /= 3;
29+
array.push(3);
30+
}
31+
while (number > 4) {
32+
var p = s - 1;
33+
var q = s + 1;
34+
while (number > 4 && number % p === 0) {
35+
number /= p;
36+
array.push(p);
37+
}
38+
while (number > 4 && number % q === 0) {
39+
number /= q;
40+
array.push(q);
3141
}
42+
s += 6;
3243
}
33-
3444
return array;
3545
};
3646

0 commit comments

Comments
 (0)