File tree Expand file tree Collapse file tree 2 files changed +21
-33
lines changed Expand file tree Collapse file tree 2 files changed +21
-33
lines changed Original file line number Diff line number Diff line change 1616 * console.log(isPrime(18)); // false
1717 */
1818 exports . isPrime = function ( number ) {
19- if ( number === 1 ) {
19+
20+ if ( number < 2 ) {
2021 return false ;
22+ }
2123
22- } else if ( number < 4 ) {
23- /**
24- * 2 and 3 are prime
25- */
26- return true ;
24+ if ( number % 2 === 0 ) {
25+ return ( number === 2 ) ;
26+ }
2727
28- } else if ( number % 2 === 0 ) {
29- return false ;
28+ if ( number % 3 === 0 ) {
29+ return ( number === 3 ) ;
30+ }
3031
31- } else if ( number < 9 ) {
32- /**
33- * We have already excluded 4,6 and 8
34- */
35- return true ;
32+ var horizon = Math . floor ( Math . sqrt ( number ) ) ;
33+ var factor = 5 ;
3634
37- } else if ( number % 3 === 0 ) {
38- return false ;
35+ while ( factor <= horizon ) {
3936
40- } else {
41- /**
42- * 'number' rounded to the greatest integer 'rounded' so that:
43- * rounded * rounded <= number
44- */
45- var rounded = Math . floor ( Math . sqrt ( number ) ) ;
46- var factor = 5 ;
47- while ( factor <= rounded ) {
48- if ( number % factor === 0 ) {
49- return false ;
50- }
51- if ( number % ( factor + 2 ) === 0 ) {
52- return false ;
53- }
54- factor += 6 ;
37+ if ( number % factor === 0 ) {
38+ return false ;
5539 }
56- }
5740
41+ if ( number % ( factor + 2 ) === 0 ) {
42+ return false ;
43+ }
44+ factor += 6 ;
45+ }
5846 return true ;
5947 } ;
6048
Original file line number Diff line number Diff line change 2121 var size = array . length ;
2222 var rand ;
2323 var temp ;
24- for ( var i = 1 ; i < size ; i += 1 ) {
25- rand = Math . round ( Math . random ( ) * i ) ;
24+ for ( var i = 0 ; i < size ; i += 1 ) {
25+ rand = Math . floor ( i + Math . random ( ) * ( size - i ) ) ;
2626 temp = array [ rand ] ;
2727 array [ rand ] = array [ i ] ;
2828 array [ i ] = temp ;
You can’t perform that action at this time.
0 commit comments