在javascript中查找数字较大的LCM时出错
目前正在尝试使用js查找课程的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
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))
一点也不奇怪,你会得到正确的答案。更改顺序将删除整数溢出。