From a1484394e1c84d4cf7b2bb5e7db0632f623855a3 Mon Sep 17 00:00:00 2001 From: MathBunny Date: Fri, 29 Jul 2016 08:07:08 -0400 Subject: [PATCH 1/2] Fix BigNumber isPrime implementation to use BigNumber methods --- lib/function/utils/isPrime.js | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/lib/function/utils/isPrime.js b/lib/function/utils/isPrime.js index 4b06b406a..50ffd822a 100644 --- a/lib/function/utils/isPrime.js +++ b/lib/function/utils/isPrime.js @@ -1,7 +1,10 @@ 'use strict'; -var deepMap = require('../../utils/collection/deepMap'); -var number = require('../../utils/number'); +var deepMap = require('../../utils/collection/deepMap'), + number = require('../../utils/number'), + map = require('../../../index'), + bitAnd = map.bitAnd; + function factory (type, config, load, typed) { /** @@ -35,7 +38,7 @@ function factory (type, config, load, typed) { var isPrime = typed('isPrime', { 'number': function (x) { if (x < 2){ - return false + return false; } if (x == 2){ return true; @@ -52,17 +55,17 @@ function factory (type, config, load, typed) { }, 'BigNumber': function (x) { - if (x < 2){ - return false - } - if (x == 2){ - return true; - } - if (x % 2 == 0){ + if (x.lt(2)){ return false; } - for (var i = 3; i * i <= x; i += 2){ - if (x % i == 0){ + if (x.equals(2)){ + return true; + } + if (x.mod(2).isZero()){ + return false; + } + for(var i = type.BigNumber(3); i.times(i).lte(x); i = i.plus(1)){ + if (x.mod(i).isZero()){ return false; } } From 5a8b53f8eb9da899df3e471d53dd7307e66b4285 Mon Sep 17 00:00:00 2001 From: MathBunny Date: Fri, 29 Jul 2016 12:13:13 -0400 Subject: [PATCH 2/2] Remove useless import --- lib/function/utils/isPrime.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/function/utils/isPrime.js b/lib/function/utils/isPrime.js index 50ffd822a..2a1d415c5 100644 --- a/lib/function/utils/isPrime.js +++ b/lib/function/utils/isPrime.js @@ -2,8 +2,7 @@ var deepMap = require('../../utils/collection/deepMap'), number = require('../../utils/number'), - map = require('../../../index'), - bitAnd = map.bitAnd; + map = require('../../../index'); function factory (type, config, load, typed) {