在javascript中查找数字较大的LCM时出错

在javascript中查找数字较大的LCM时出错,javascript,node.js,algorithm,math,lcm,Javascript,Node.js,Algorithm,Math,Lcm,目前正在尝试使用js查找课程的LCM。它似乎工作没有问题,但当我提交它时,我得到了一个输入失败的结果226553150 1023473145,这是返回463742129880313440当它应该返回46374212988031350感谢您所做的一切 var readline = require('readline'); process.stdin.setEncoding('utf8'); var rl = readline.createInterface({ input: process.st

目前正在尝试使用js查找课程的LCM。它似乎工作没有问题,但当我提交它时,我得到了一个输入失败的结果
226553150 1023473145
,这是返回
463742129880313440
当它应该返回
46374212988031350
感谢您所做的一切

var readline = require('readline');

process.stdin.setEncoding('utf8');
var rl = readline.createInterface({
input: process.stdin,
terminal: false
});

function lcm(a,b) {
   return((a*b)/gcd(a,b))
}

function gcd(a,b) {
   if(b == 0){
    return a;
   }
   return gcd(b,(a%b));
}




rl.on('line', (line) => {
  var a = parseInt(line.toString().split(' ')[0]);
  var b = parseInt(line.toString().split(' ')[1]);
  console.log(lcm(a,b));
  rl.close();
})

JavaScript中的最大安全整数为,并且您的结果大于该值


使用一个包来表示大整数。

我只能提交一个文件显然,如果你像这样计算LCM
a*(b/gcd(a,b))
一点也不奇怪,你会得到正确的答案。更改顺序将删除整数溢出。