【发布时间】:2021-12-29 12:52:30
【问题描述】:
我正在构建一个分解程序,我想在number <= Number.MAX_SAFE_INTEGER 时将每个BigInt 类型更改为常规Numbers。
不是为每种情况编写两个函数,如果我可以将它们全部保存在一个可以相应地改变变量类型的函数中会很好 (我猜类似于let myVar = 3n || 3) .
function Factorize(dividend) {
let divisor = 2n;
//if number <= Number.MAX_SAFE_INTEGER then let divisor = 2. Same for all other bigInts.
let method1 = [], method2 = [];
while (dividend > 1n) {
if (dividend % divisor === 0n) {
method1.push(`${divisor}`);
method2.push(`${dividend} / ${divisor}`);
dividend /= divisor;
} else {
divisor++
};
};
return {
default: method1,
detailed: method2,
get isPrime() {
return this.default.length === 1 && this.default[0] !== 2;
}
};
};
const number = parseInt(prompt());
console.log(Factorize(BigInt(number)));
感谢您的帮助。
【问题讨论】:
标签: javascript numbers bigint