mirror of
https://github.com/josdejong/mathjs.git
synced 2026-01-18 14:59:29 +00:00
Merge pull request #697 from MathBunny/master
Fix bignumber isPrime implementation to use bignumber methods
This commit is contained in:
commit
ff53b04dca
@ -1,7 +1,9 @@
|
||||
'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');
|
||||
|
||||
|
||||
function factory (type, config, load, typed) {
|
||||
/**
|
||||
@ -35,7 +37,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;
|
||||
@ -53,17 +55,17 @@ function factory (type, config, load, typed) {
|
||||
|
||||
// FIXME: use BigNumber methods instead of implicitely converting to number
|
||||
'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;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user