Javascript 欧拉计划问题3的正确想法是什么?

Javascript 欧拉计划问题3的正确想法是什么?,javascript,for-loop,if-statement,Javascript,For Loop,If Statement,对于每个需要问题本身的人: “13195的主要因素是5、7、13和29 数字600851475143中最大的素因子是什么?” 所以我坐在这里试图用JavaScript解决这个问题。我不想用谷歌搜索它,因为这样我就得到了我不想要的精确解。我只是想问是否有人能告诉我,如果我做了一些非常错误的事情,或者我的想法是正确的,而我只是错过了一些东西(?),以及我可以如何改进,而没有直接告诉我答案。 此外,代码尚未完成(需要按最大数字对数组进行排序,而且我的浏览器在执行函数时崩溃/加载了很长时间,因此循环也一

对于每个需要问题本身的人: “13195的主要因素是5、7、13和29

数字600851475143中最大的素因子是什么?”

所以我坐在这里试图用JavaScript解决这个问题。我不想用谷歌搜索它,因为这样我就得到了我不想要的精确解。我只是想问是否有人能告诉我,如果我做了一些非常错误的事情,或者我的想法是正确的,而我只是错过了一些东西(?),以及我可以如何改进,而没有直接告诉我答案。 此外,代码尚未完成(需要按最大数字对数组进行排序,而且我的浏览器在执行函数时崩溃/加载了很长时间,因此循环也一定有问题)

提前谢谢

function solve() {
  var divider = 2;
  var n = 600851475143;
  var item = 0;
  var arr = [];
  for (divider = 2; divider <= n; divider++) {
    if (n % divider === 0) {
      item = n / divider;
      arr.push(item);
    } else {
      divider++;
    }
  }
  console.log(arr);
}
函数求解(){
var除法器=2;
var n=600851475143;
var项=0;
var-arr=[];
对于(divider=2;divider,Steve()在评论中指出:


“欧拉计划的许多问题更多地依赖于对 数学比编程更重要,所以这里的人可能不那么容易接受。 我要指出的是,您正在迭代每个整数,而不是 比每一个素数都多。你可能应该考虑一些方面 一个普遍的提示:如果 你正在迭代超过十亿的东西,寻找 “一些优化”


所以我实际上实现了一个基本检查。

“我不想用谷歌搜索它”但这是预期的。看,问题必须是独立的。与问题相关的任何信息都必须是问题本身的一部分。链接到外部资源是不够的。Euler项目的许多问题更多地依赖于对数学的理解,而不是编程,所以这里的人可能不那么容易接受。我要指出要知道你是在迭代每一个整数,而不是每一个素数。你可能也应该加入素数因子的某些方面来提高效率。一般提示:如果你在迭代超过10亿个东西,请寻找一些optimizations@Steve谢谢你的回答,史蒂夫。我想这就是我书中缺少的函数!实际上,这里不需要素数,您的算法(“试除法”)如果执行正确,应该在几分之一秒内给出结果。提示:从3开始,而不是2,只检查奇数。