gpt4 book ai didi

javascript - 如何使用javascript查找可被多个数字整除的数字

转载 作者:行者123 更新时间:2023-11-29 22:08:08 25 4
gpt4 key购买 nike

我已经停止学习代码了。我回来了,一切都从我脑海中消失了。我想编写一个简单的程序来查找可被任何整数整除的数字(例如,可被 5、6、9、10 或 4、7、25 整除)

到目前为止我做了这个:

var multipleOf = function() {
for (var i = 1; i < 1000; i*2) {
if (i%3 === 0) {
if (i%4 === 0) {
if (i%5 === 0) {
return(i);
}
}
}
}
};

但是有几个问题。它似乎无法正常工作(我认为某些 python 可能会滑入其中)它不可扩展,我必须为不同数量的数字更改代码(例如,所有素数 1-100 都需要大量编码,而不仅仅是输入数字)

谁能帮我编写可以像这样运行的代码:

console.log(multipleOf(2,5,8,12,15,17,20))

最佳答案

JavaScript 有一个巧妙的东西,可以松散地定义参数,恰本地命名为 arguments

据我了解,您实际要查找的是所提供参数的最小公倍数,这是一个相当简单的操作。这是一种方法,使用辅助函数计算一对数字的 LCM,这又需要一个函数来计算它们的 GCD。

function multipleOf() {
function gcf(a, b) {
return ( b == 0 ) ? a : gcf(b, a % b);
}
function lcm(a, b) {
return a * b / gcf(a,b);
}
function recurse(ar) {
if (ar.length > 1) {
// take the first two numbers, caculate their LCM, and put the result
// back into the stack. Reduces array length by 1.
ar.push( lcm( ar.shift() , ar.shift() ) );
return recurse( ar );
}
else return ar[0];
}
// take arguments and build an array
// arguments is an array-like object, but it doesn't have methods
// such as `shift` or `push`, required for `recurse`
// take this opportunity to ensure we have numbers.
var ar = [], l = arguments.length, i;
for( i=0; i<l; i++) ar[i] = parseInt(arguments[i],10);
return recurse(ar);
}

关于javascript - 如何使用javascript查找可被多个数字整除的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19753728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com