【发布时间】:2017-01-07 19:51:52
【问题描述】:
我有以下 javascript 代码来计算数字的因数。
var some = [];
var main = "";
var final = "";
function text(data) {
spliter = data.split(",");
var k = 0;
while (k < spliter.length) {
var meethi = 0;;
main = spliter[k];
var datas = "";
for (var i = 1; i <= 10; i += 1) {
meethi = Math.abs(main / i);
datas = meethi;
some.push('' + datas + '');
}
some.forEach(myFunction);
final += res + '<br>';
k++;
}
return final;
}
var max = 0;
var res = "";
function myFunction(item) {
var van = item.split(".");
if (van[1] == undefined) {
var high = Math.floor(main / van[0]);
if (high > max) {
max = high;
res += max + ':';
}
}
}
document.getElementById('demo').innerHTML = text('124,20');
<p id="demo"></p>
我的程序获取具有两个值的因子。如何确定两个值的公因数,只有最大公因数?
例如('124,20') output --> 4
我根据自己的知识尝试了代码。如果您对代码有任何其他建议,请告诉我并用我想要的结果更正我的代码。
【问题讨论】:
-
看来你可以计算出因子,所以公因子是出现在两个列表中的那些。那么你的问题是什么?在您的示例中还有 3 个共同因素(1,2 和 4),那么为什么您只想要 4 作为结果?
-
@jamiec ya..正确..需要两者的共同因素。只有最高的comman值。
-
嗯,没错,这就是所谓的最大公分母,从给出的答案中可以看出,这是一个众所周知的问题。
标签: javascript for-loop math while-loop