目录
一、素数及相关概念
素数又称质数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做素数;否则称为合数(规定1既不是质数也不是合数)。
1、素数的性质
- 质数只有两个因数:1和本身。
- 任何大于1的自然数,要么本身是质数,要么可以分解为几个质数之积,且这种分解是唯一的。
- 质数的个数是无限多的。
- 若n为正整数,在n²到(n+1)²之间至少有一个质数
- 若n为大于等于2的正整数,则n到n!之间至少有一个质数
- 若质数p为不超过n(n≥4)的最大质数,则p>n/2
- 所有大于10的质数中,个位数只有1,3,7,9
- 在一个大于1的数a和它的2倍之间(即区间(a, 2a]中)必存在至少一个素数。
- 存在任意长度的素数等差数列。
2、有关素数的猜想
- 哥德巴赫猜想:是否每个大于2的偶数都可写成两个素数之和?
- 孪生素数猜想:孪生素数就是差为2的素数对,例如11和13。是否存在无穷多的孪生素数?
- 斐波那契数列内是否存在无穷多的素数?
- 是否有无穷多个的梅森素数?(所谓梅森数,是指形如2ᵖ-1的一类数,其中指数p是素数,常记为Mp。如果梅森数是素数,就称为梅森素数。)
- 是否存在无穷个形式如X2+1素数?
3到881之内的孪生素数
2至54的素数
二、素数的判断方法
1、根据性质去判断
我们都知道素数的性质是除了1和它自身外,不能被其他自然数整除,所以第一个方法就是从2到n-1一个个去判断是否有数可以除以该数且为0,即 n%i==0;如果有则不是素数,如果遍历一遍都没有数可以整除它,则就是素数。
public class Main {
public static boolean isPrime(int n){
if (