gpt4 book ai didi

javascript - 找到两个数字之间的最大公因数

转载 作者:行者123 更新时间:2023-11-28 19:04:32 25 4
gpt4 key购买 nike

我正在尝试确定两个数字之间的最大公因数。这是我的代码

function Division(num1,num2) { 

var sum = 1

//contain all divisor which can divide num without remainder
var num1_divisor = []
var num2_divisor = []

//if num1%divisor == 0 , store in num1 divisor
for (var i = 1 ; i < num1 ; i++)
{
if ( num1 % i == 0 )
{
num1_divisor.push(i)
}
}

console.log(num1_divisor)

//if num2%divisor == 0 , store in num1 divisor
for (var i = 1 ; i < num1 ; i++)
{
if ( num2 % i == 0 )
{
num2_divisor.push(i)
}
}

console.log(num2_divisor)

//if num1_divisor is contained in num2 divisor
//mulitply them by sum
for ( var i = 0 ; i < num1.length ; i++)
{
var num1_value = num1_divisor[i]

for ( var j = 0 ; j < num2.length ; j++)
{
var num2_value = num2_divisor[j]

if (num1_value == num2_value )
{
sum = sum * num2_value

}
}
}

return sum
}

程序逻辑如下:对于num1和num2,它会将所有可整除的值分别存储在num1_divisor和num2_divisor中。然后,我将 num1_divisor 和 num2_divisor 之间的所有公共(public)值相乘,以找到两个数字之间的最大公因数。

我检查了程序,比较部分似乎有错误

 if (num1_value == num2_value )
{
sum = sum * num2_value

}

由于我不知道的原因,尽管两个数字相同,但 num1_value 不等于 num2_value。

一个示例案例是 Division(10,12),它返回 1,尽管它应该返回 2

如果有任何帮助,我将不胜感激

谢谢

最佳答案

没有数字的长度,您可能想检查num1_divisor.length而不是num1.lengthnum2_divisor .length 而不是 num2.length

此外,您需要确保用于查找除数的循环包含数字本身,因为数字是其自身的除数。

for (var i = 1 ; i <= num1 ; i++)

for (var i = 1 ; i <= num2 ; i++)

经过这些更改,结果似乎是正确的。

关于javascript - 找到两个数字之间的最大公因数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31947057/

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