素数检测生成
判断一个数是否为素数,批量生成 N 以内或区间内的所有素数。
什么是素数检测与生成?
素数(又称质数)是大于 1 的自然数中,除了 1 和它本身以外不再有其他因数的数,例如 2、3、5、7、11、13。素数在数论、密码学(如 RSA 加密依赖大素数的分解难度)、哈希表设计等领域都有重要应用,因此判断一个数是否为素数、批量生成素数是非常常见的数学需求。
本工具提供三种模式:判断模式使用优化的试除法,只试除到 √N 就停止,即使是 10^12 级别的数字也能瞬间给出结论,并附上验证过程说明;生成模式采用经典的埃拉托斯特尼筛法(埃氏筛),一次标记出 2 到 N 之间所有合数,剩下的全部是素数,效率远高于逐个判断;区间模式可以在任意 [a, b] 区间内筛出所有素数并统计数量。
所有计算都在浏览器本地完成,输入的数据不会上传到任何服务器,可以放心处理大范围的数据。
使用步骤
- 在「功能模式」下拉框中选择判断、生成或区间模式;
- 在「数字」输入框中填写要判断的数、上限 N 或区间起点 a;
- 区间模式下再填写区间终点 b;
- 点击「开始计算」按钮,结果会显示在下方结果区;
- 点击「复制」按钮即可复制结果。
常见问题
什么是素数(质数)?
素数是大于 1 的自然数中,除了 1 和它本身以外不再有其他因数的数,例如 2、3、5、7、11。1 既不是素数也不是合数,2 是唯一的偶素数。
判断素数为什么要只试除到根号 N?
如果一个合数 N 有因数 d,那么 N = d × e,其中必有一个因数不大于 √N。因此只要检查 2 到 √N 之间是否存在能整除 N 的数即可,大幅减少试除次数。
什么是埃氏筛(埃拉托斯特尼筛法)?
埃氏筛是批量生成素数的高效算法:先假设 2 到 N 全是素数,从 2 开始把每个素数的倍数全部标记为合数,剩下的就是素数。本工具用它生成 N 以内的全部素数。
支持多大的数字?
判断单个数字时建议不超过 10^12(约一万亿),在此范围内试除法能瞬间完成;生成模式建议 N 不超过 1000 万,避免浏览器卡顿。