如何检查 JavaScript 中的质数

2025年4月19日 | 阅读 6 分钟

JavaScript 中的质数简介

质数是大于一的整数,其因子只有一和它本身。因此,如果一个质数除以任何小于它的整数,它将永远不会得到一个整数。编程中一个常见的练习是编写一个程序来测试一个数字是否是质数。这可以使用 JavaScript 在客户端实现,并强制客户端计算机进行计算。下面的文章将解释如何使用 JavaScript 测试一个数字是否是质数。

逻辑

我们可以通过将数字除以从 1 到小于该数字的所有整数来检查数字是否为质数。如果这些除法中的任何一个没有余数,那么该数字就是可被整除的,因此不是质数。

让我们看一些例子以更好地理解

13 只能被 1 和 13 整除;如果我们除以任何其他数字,例如 7,则余数为 6。但是 12 有因子 1、2、3、4 和 6,所以它不是 质数。在这里,我们可以观察到最小的质数是 2,令人惊讶的是,它是唯一的偶数质数。

这是前 20 个质数

有几种测试数字是否为质数的方法,所有这些都称为素性检验。

JavaScript 中测试质数的方法

示例 1:使用 For 循环

检查数字(我们称之为 x)是否为质数的最简单方法是查看是否有 x 的因子(我们称之为 d),其中 1 < d < x。而且,我们知道对于任何数字 x,永远不会有因子 d 使得 d > x/2。因此,我们将查找范围 [2, x/2] 内的任何数字,这些数字将是 x 的因子。如果我们能找到一个,那么我们可以说 x 不是质数,否则就是。

代码

当用户输入值时,我们调用了 checkForPrime() 函数。我们首先验证用户是否提供了有效输入。输入不能为负数或空,因为质数不能为负数。

然后,我们使用一个标志来验证在将数字除以从 2 到 n-1 的所有整数时,我们是否得到过零余数。

如果我们得到零,则表示该数字不是质数,因此我们将反转标志的状态,终止 循环,并将该数字标记为非质数。如果标志的状态从未反转,则表示我们从未得到零余数,我们可以将该数字标记为质数。

输出

How to Check Prime Number in JavaScript
How to Check Prime Number in JavaScript

示例 2:使用 While 循环

此示例旨在展示 JavaScript 中的另一种实现方式。

代码

输出

How to Check Prime Number in JavaScript
How to Check Prime Number in JavaScript

在本例中,使用 while 循环来测试数字的可除性,并将测试限制在 n/2。这种方法基于一个数学定理,该定理指出一个数字永远不能被大于该数字一半的任何整数整除。通过这种方法,我们通过减少所需的除法次数来提高效率。

示例 3:使用递归

代码

输出

How to Check Prime Number in JavaScript
How to Check Prime Number in JavaScript

这里,已定义了一个基于递归的新函数。该函数根据内在逻辑具有基本情况,使其能够调用自身,直到达到这些基本情况。该函数将把数字除以从 2 到 n-1 的每个因子,并根据余数产生结果。

结论

  1. 我们已经了解了数字作为质数的属性,并应用了相应的 JavaScript 逻辑。我们可以使用不同类型的循环来实现相同的功能。
  2. 质数是指那些只能被 1 和自身整除且没有余数的数。
  3. 在 JavaScript 中,通过从数字迭代到 n 并检查因子来发现质数。

下一个主题JavaScript 指针