通过MCP连接 →

输入计算

数学公式

广告

结果

Is 97 prime?
YES
This is a prime number
待判断的数 97
Result Prime

什么是质数?

质数(也叫素数)是指大于 1、且只有 1 和它本身两个正因数的整数,例如 2、3、5、7、11、13。大于 1 但不是质数的数称为合数,它们可以写成若干个更小整数的乘积。使用这个计算器,你输入任意一个数,就能立刻知道它是不是质数;如果不是,它还会告诉你能整除它的最小因数。

将素数显示为单行圆点,与排成矩形网格的合数进行对比
素数无法组成矩形(1×n 除外),而合数可以。

如何使用这个计算器

在输入框中填入任意一个整数(0 或更大),然后提交。结果区会显示 (该数为质数)或 (该数为合数)。当结果为合数时,下方表格会列出大于 1 的最小因数,帮你迈出完整因数分解的第一步。

计算原理详解

要高效判断一个数是否为质数,只需测试到 \(n\) 的平方根为止的因数即可。因为如果 \(n\) 有一个比平方根大的因数,那它必然还有一个与之配对、比平方根小的因数,所以测到平方根就足够了。用数学语言表述:当 \(n > 1\),且对于从 2 到 \(\lfloor\sqrt{n}\rfloor\) 的每一个整数 \(i\) 都有 \(n \bmod i \neq 0\) 时,\(n\) 就是质数。和逐一测试小于 \(n\) 的每个数相比,这种方法的计算量大大减少。

$$n \text{ is prime} \iff n > 1 \text{ and } n \bmod i \neq 0 \;\; \forall\, i \in [2, \sqrt{n}]$$

从 2 到 n 的因数数轴,在 n 的平方根处标有记号,表示只需检查下半部分
只需检验到 n 的平方根为止的因数。

实例演示

以 \(n = 97\) 为例。它的平方根约为 \(9.85\),因此我们测试 2、3、5、7、9 这几个因数。它们都不能整除 97(97 是奇数,也不能被 3、5、7 整除),所以 97 是质数。再看 \(n = 91\),依次测试 2、3、5,再到 7 时发现 \(91 \div 7 = 13\) 正好整除,所以 91 是合数,最小因数为 7。

常见问题

1 是质数吗?不是。按照定义,质数必须大于 1,因此 1 既不是质数,也不是合数。

2 是质数吗?是的。2 是唯一的偶质数,其他所有偶数都能被 2 整除。

为什么只测到平方根就够了?因数总是成对出现,两两相乘等于 \(n\)。如果一对因数都大于 \(\sqrt{n}\),它们的乘积就会超过 \(n\),这显然不可能——所以任意一对因数中,至少有一个不大于 \(\sqrt{n}\)。

最后更新: