什么是质数检测工具?

即时判断任意数字是否为质数。对于合数,显示完整的质因数分解。还可生成任意范围内的质数列表,查找上一个/下一个质数,探索质数规律——适用于数学教育、密码学基础和数论研究。

输入没有上限——落在 JavaScript 安全整数范围内的数走更快的试除法,更大的数则交给确定性 BigInt Miller-Rabin 测试,因此密码学量级的素数也能准确判定。素因数分解会展开整棵树(84 → 2 × 42 → 2 × 21 → 3 × 7);对于很大的合数,超过 10^7 的剩余余因子会直接显示,而不再继续分解。范围搜索上限 1000 万项,保证结果可以滚动浏览;还能直接查第 N 个素数,适合编程挑战题和数论练习。

使用方法

  1. 输入任意正整数判断是否为质数——即使是较大的数字也能即时出结果。
  2. 对于合数,查看完整的质因数分解树;对于质数,查看其上下最近的质数。
  3. 使用范围查找器列出两个数之间的所有质数,或生成前N个质数。

何时使用

  • 校对数论或离散数学作业的答案。
  • 为哈希函数或入门级密码学示例挑选一个素数模数。
  • 为 Project Euler 或竞赛编程题快速生成前 N 个素数。

结果

输入97是质数,输入84不是质数,因数为2²×3×7。生成1到100之间的所有质数,可见该范围内共有25个质数。

常见问题

判断一个很大的数是不是素数要多久?
常见输入都在 10 毫秒以内。带确定性见证集的 Miller-Rabin 大约是 O(log³ n) 次模幂运算,即使是几十位数,也只要几十次乘法。无论你查的是 12 位数还是密码学量级的素数,界面都瞬间出结果。
素因数分解一定唯一吗?
唯一。算术基本定理保证每个大于 1 的整数都有且仅有一种素因数分解(忽略次序)。工具按升序排列,重复因子用指数表示(84 = 2² × 3 × 7),写法与课本一致。
最多能检测多大的数?
没有固定上限。落在 JavaScript 安全整数范围内的数走更快的试除法,更大的数由 BigInt Miller-Rabin 测试处理。该测试对 3.3 × 10^24 以下的每个数都可证明完全正确,远超此范围后仍是极强的概率素性测试,因此能轻松判定密码学量级的素数。
为什么 0 和 1 不算素数?
素数的定义是恰好有两个不同正因数(1 和自身)的正整数。1 只有一个因数(它自己),不符合;0 则有无穷多个因数。把这两个排除掉,素因数分解的唯一性才能不需要特殊处理。
素数和现实世界的密码学有什么关系?
RSA 取两个 1024 位左右的大素数相乘,把乘积作为公钥的一部分公开。把乘积分解回两个素数极难——这就是 RSA 的安全基础。检测素性本身仍然很快,因此密钥生成不是瓶颈。

相关工具