🔍 素数判断器
质数检测 · 质因数分解 · 素数生成
质数检测 · 质因数分解 · 素数生成
素数(质数)是大于1的自然数,且只能被1和自身整除。最小的素数是2,也是唯一的偶素数。前几个素数:2,3,5,7,11,13,17,19,23,29。
判断n是否为素数,只需试除2到√n之间的所有整数。如果都不能整除,则n为素数。如判断97,√97≈9.8,只需试除2~9。
是的,这是算术基本定理。每个大于1的正整数都可以唯一地分解为素数的乘积。如60=2×2×3×5=2²×3×5。
1不是素数,因为素数定义为大于1且只有1和自身两个因数的自然数,1只有1个因数。2是素数,而且它是唯一的偶素数,因为其他偶数都能被2整除。
素数是无穷多的,这在欧几里得的《几何原本》中就被证明了。虽然素数无限多,但越往后越稀疏。
把一个合数写成素数的乘积就叫质因数分解。如84=2²×3×7。分解结果能唯一确定(不考虑顺序),这就是算术基本定理。
判断素数只回答"是不是",结果只有是或否。质因数分解则要找出这个数由哪些素数相乘得到,对合数才有意义(素数本身就是自己的分解)。
RSA等公钥加密依赖这样的事实:两个大素数相乘很容易,但要反过来把一个大数分解成素数因子却极难。素数越大,破解密码的难度越高。
最直接的方法是试除法:只需检查所有≤√n的素数能否整除n。因为如果n=a×b,a和b不可能都大于√n。
对大数,还可以用埃拉托斯特尼筛法(筛子)批量生成素数,本工具生成素数列表用的就是它的思想。
| 序号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 素数 | 2 | 3 | 5 | 7 | 11 | 13 | 17 | 19 | 23 | 29 | 31 | 37 | 41 | 43 | 47 | 53 | 59 | 61 | 67 | 71 |
埃拉托斯特尼筛法:从2开始,把每个素数的倍数都标记为合数,未标记的就是素数。比如先划掉所有2的倍数,再划掉3的倍数,如此反复。
这个算法比逐个试除快得多,是从1到N找全部素数的经典方案,适合生成素数表。
| 区间 | 1~10 | 1~100 | 1~1000 | 1~10000 | 1~100000 |
|---|---|---|---|---|---|
| 素数个数 | 4 | 25 | 168 | 1229 | 9592 |
| 合数 | 36 | 48 | 60 | 72 | 180 | 420 | 1000 |
|---|---|---|---|---|---|---|---|
| 质因数分解 | 2²×3² | 2⁴×3 | 2²×3×5 | 2³×3² | 2²×3²×5 | 2²×3×5×7 | 2³×5³ |
1. 输入要判断的数字,点击"判断"。
2. 如果是合数,会显示质因数分解结果。
3. 输入上限值,点击"生成素数列表"获取该范围内所有素数。