质数工具
检查质数、查找因数、生成质数范围
100% 客户端处理
97 is a prime number
2^2 x 3 x 5
The 10th prime is 29
检查质数、查找因数、生成质数范围
100% 客户端处理
97 is a prime number
2^2 x 3 x 5
The 10th prime is 29
质数工具集把四个计算器打包在一个页面里:判断一个数是不是质数、把它分解成质因数、列出某个区间内的全部质数,或者查找第 N 个质数。它适用于写作业、竞赛练习、约分,或者单纯好奇某个数是不是质数。用顶部按钮切换模式,当前模式的结果随输入更新,每个结果都有自己的复制按钮。
| 模式 | 输入 | 输出 |
|---|---|---|
| 质数判断 | 单个数字 | 质数或合数,若为质数还会给出邻近质数 |
| 质因数分解 | 单个数字 | 带指数的分解式与不同质因数个数 |
| 区间质数 | 用逗号分隔的两个边界 | 两者之间的每个质数及其个数 |
| 第 N 个质数 | 一个位置,例如 10 | 该位置上的质数 |
判断模式对任何质数输入还会报告下一个和上一个质数,向前向后最多搜索 200。当你需要为哈希表容量或示例挑一个附近质数、又不想靠试错来挑选时,这个功能很好用。
所有大于 3 的质数都具有 6k − 1 或 6k + 1 的形式,所以判断器不必测试每个整数。它先排除小于等于 1 的数,接受 2 和 3,排除任何能被 2 或 3 整除的数,然后以 6 为步长成对测试约数 5、7、11、13、17、19……一旦约数的平方超过该数就停止,因为合数必定有一个不大于其平方根的因子。跳过 2 和 3 的倍数大约去掉了三分之二的候选约数,使单个数字的判断即使输入达到百万级也保持快速。
97:平方根约为 9.85,只需测试 5 和 7;两者都除不尽,所以 97 是质数。工具还会报告下一个质数 101 和上一个质数 89。91:测试 5 失败,但 7 成功,因为 91 = 7 × 13,所以它是合数。分解模式返回 7 × 13。60:2^2 × 3 × 5,因为 60 = 2 × 2 × 3 × 5。工具还会报告共有 3 个不同的质因数。1,100:共 25 个质数,从 2、3、5、7、11 开始,到 89、97 结束。算术基本定理指出,每个大于 1 的整数都有且只有一种质因数分解。正是这种唯一性,使 91 无论从哪个角度入手都化简为 7 × 13,也使工具能用指数作为简写:2^2 × 3 × 5 表示两个 2、一个 3 和一个 5。同样的分解驱动着许多实际工作,比如约分、求最大公约数和最小公倍数,这些最终都归结为比较质因数。分解也是 RSA 加密背后那种不对称性的来源:把两个大质数相乘很便宜,而从乘积反推回它们却很难。
除了算术练习,质数还有实实在在的分量。RSA 及类似的公钥系统依赖“相乘容易、分解困难”这道鸿沟。哈希表常用质数个桶,以便在取模哈希下更均匀地分散键。Magicicada 属的周期蝉以 13 年和 17 年为周期出土,两者都是质数,这降低了与天敌较短生命周期同步的概率。就连简单的约分也是伪装的分解:把 84/126 约分,就是找出公共的 2 × 3 × 7 并消去它。
它使用带 6k ± 1 优化的试除法:先排除 2 和 3,然后只测试候选约数 5、7、11、13……一直试到该数的平方根。对单个数字来说很快,即使数值在百万级也一样。
分解会从 3 开始逐个奇数试到剩余值的平方根,没有筛法或更高级的分解算法。一个数如果两个大质因数彼此接近,就会被迫做很多次除法,所以极大的输入可能变慢。
是。任何大于 2 的偶数都能被 2 整除,所以 2 是唯一的偶数质数。判断器会立即排除所有大于 2 的偶数来处理这一点。
1 被当作特殊情况处理,直接显示为 1。它不被视为拥有质因数,这与 1 不是质数是一致的。
区间模式接收两个边界,列出两者之间的每个质数并报告个数。第 N 个质数模式接收一个位置,返回该位置的质数,其中第 1 个是 2,第 10 个是 29。
数字解析器在判断和分解模式下接受小数和负数。不过素性只对整数有意义,所以想要可预期的结果请用整数。第 N 个质数字段只接受正整数。
由 HandyTools Hub 团队审校 · 最后更新