gpt4 book ai didi

javascript - 找出一个数的最大因数(除了它本身)

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:13:01 25 4
gpt4 key购买 nike

找到一个数的最大因数(除了它本身)的最佳方法是什么?到目前为止,我得到了这个:

function biggestFactor(num) {
if (num % 2 == 0) return num / 2;
var result;
for (var i = 1, m = Math.floor(num / 2); i < m; i++) {
if (num % i == 0) result = i;
}
return result;
}

greatestFactor(1024); // 512
greatestFactor(1025); // 205
greatestFactor(1026); // 513
greatestFactor(1027); // 79

这样显然效率不高。还有什么其他方法可以解决这个问题?

最佳答案

你的要求是从 "num"中删除最小的素数

  • 测试 2 可以,而不是从 3 开始直到平方根(num)
  • 你应该增加 2
  • 结果是num/i,而不仅仅是i(inum的最小质数)

(首先我错了,因为我以为你在寻找最大的素数)

现在是测试版

function biggestFactor(num) {
if (num % 2 == 0) return num / 2;
var stop = Math.sqrt(num);
for (var i = 3; i <= stop; i += 2) { // = because of prime squares
if ((num % i) == 0) { // test if integer
return num / i; // return of smallest prime
}
}
return num; // no int or < 2
}

for (var num = 10; num < 40; num ++) {
console.log(num + ' => ' + biggestFactor(num));
}

关于javascript - 找出一个数的最大因数(除了它本身),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45729809/

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