欧拉计划系列:问题3

该解决方案将使用JavaScript编写。 我认为我要开始做的是在我连续解决两个问题之后在不同语言之间轮流进行。 前两个解决方案是使用Python,而第一个和下一个将是JS。

最大素数

13195的主要因子是5、7、13和29。

600851475143的最大素数是多少?

让我们分解一下这个问题要我们解决的事情-

  1. 找到600851475143的主要因素
  2. 获得最大素数

因此,为了不必一遍又一遍地键入大量数字,让我们初始化变量。 这应该看起来像这样-

  var target = 600851475143, 
i = 0;

我们的target变量具有我们需要为其找到最大素数的值。 i变量只是我们传入的while循环的初始化。

寻找主要因素

您可以想象,我们需要通过执行类似target % i == 0来检查素数,其中i是任意数字。 如果条件成立,那么我们就有一个质数可以使用。

但是,我们还需要对所有这一切都保持高效,因此,每次获得主要因素之前,我们都需要不断简化target数目,直到达到最大数目为止。

 而(目标> i){ 
如果(目标%i == 0){
目标=目标/ i;
}
  i ++; 
}

循环应如下所示。 这里发生的是我们正在运行一个循环,而target大于i.的值i. 然后,我们检查它是否是质数,如果是,则重新定义target变量并增加i.的值i.

我们一遍又一遍地执行此操作,直到最终得到数字6,857-目标值中最大的素数。