ARCL检验法改进了费马检验,它不再受伪素数的愚弄.这种检验法需要相当多的高深的数学知识.现在我还不能提供这个方法的详细情况,以后可能会的.在下面我将要讲的是n-1检验法和n+1检验法.
1.n-1 检验法
如果对于奇数 n,我们已经知道了n-1的素因子分解式,那么如下的n-1检验法将是有效的.在1891年,E.卢卡斯将费马小定理改进成对于检验素数很实用的形式,后来又由克拉奇科和莱默进一步改进:
定理一:设n>1是一个奇数,如果对于n-1的每一个素因子q存在一个整数a使得:
an-1 = 1 (mod n), and
a(n-1)/q ≠ 1 (mod n);
则n是素数.
这个定理的不足之处是需要知道n-1的全部因子,那么能不能不需要如此呢?下面一个定理是泊克林顿(Pocklingdon)在1914年发现的:
泊克林顿定理:设n-1=qkR,这里q是素数,并且R不能被q整除.如果存在一个整数a使得an-1=1并且
gcd(a(n-1)/q-1,n) = 1,则n的每一个素因子q都具有qkr+1的形式.
利用这个定理,我们可以将定理一改进如下:
定理二:假定 n-1 = FR, 这里 F>R, gcd(F,R)=1 并且已知 F的素因子分解.如果对于F的每一个素因子q 都存在一个整数a >1 使得
an-1 = 1 (mod n)
gcd(a(n-1)/q-1,n) = 1;
则 n 是素数. (注意对每一个 q 都可以用不同的 a).
定理二还可以进一步改进如下:如果 F 在我们转向另一种检验法之前,让我们把如下定理二的两种应用记述如下: F(n) 是素数当且仅当 普罗斯(Proth)定理 (1878): 让 n = h.2k+1且 2k > h. 如果存在一个整数a使得: 定理三 : 让 n = h.qk+1 且 q 是素数 并且 qk > h. 如果存在一个整数a使得 an-1 = 1 (mod n), 并且 gcd(a(n-1)/q-1,n) = 1, 则 n 是素数. 2. n+1 检验法和Lucas-Lehmer检验法 有许多已知的大素数具有形式N-1, 而 N 是很容易分解因数的,为什么这些形式的数能被检验呢?因为对它们可以应用一种类似于费马小定理的有趣定理来对付它们. 引理 1: rm = (V(m) + U(m)sqrt(p2-4q))/2 这里 U 和 V 分别定义如下: U(0) = 0, U(1) = 1, U(m) = pU(m-1) - qU(m-2) V(0) = 2, V(1) = p, V(m) = pV(m-1) - qV(m-2) 这就是关于 p 和 q的卢卡斯序列. 一个众所周知的特例是令 p=1, q=-1, 则 U(m) 斐波拿契数列.卢卡斯序列有许多特性,使得它们能很快地进行计算(用一种类似于我们在计算 xm 时所用的重复平方的方法): U(2m) = U(m)V(m) V(2m) = V(m)2-2qm 现在我们来叙述这种类似于费马小定理的定理: 引理 2: p, q 和 r 同上 (使得 p2-4q 不是模 n的一个平方剩余), 这样说有点太混乱, 让我们用我们的 U 序列(即sqrt(p2-4q)的系数). 引理 3: (p, q 同上) 如果 n 是素数, 则 U(n+1) = 0 (mod n). 现在我们可以重新叙述一下定理了: 定理 4: 让 n > 1 是一个奇整数. 如果对于 n+1 的每一个素因子 r 都存在相应的素数 p 和 q (这里 p2-4q 不是 n 的平方剩余)使得: U(n+1) = 0 (mod n),并且 U((n+1)/r) is not 0 (mod n); 则 n 是素数.(确定一个数 d 是否是 modulo n 的一个平方剩余很容易用 Jacobi 符号来决定,这在任何一本数论书中都可以找到.) 卢卡斯-莱默检验法(1930): 让 M(n) 是第 n 个梅森素数 (即 M(n) = 2n-1). M(n) 是素数当且仅当 S(n-2) = 0 (mod M(n)) 这里 S(0) = 4 并且 S(k+1) = S(k)2-2.
佩班(Pepin)检验法(1877): 让 F(n) 第n个费马数 ( F(n) = 22n+1) 并且 n>1.
3(F(n)-1)/2 = -1 (mod F(n)).
a(n-1)/2 = -1 (mod n), 则 n 是素数. (这个定理已经有一个程序,欢迎下载)
假定我们选择两个整数 p 和 q 使得 p2-4q 不是模 n的一个平方剩余, 则多项式 x2-px+q 有两个不同的根, 其中之一是 r = (p+sqrt(p2-4q))/2, 并且很容易推导出 r 的幂具有如下形式:
让 2r = a+bsqrt(p2-4q) (mod n) .
如果 n 素数, 则 2rn = a-bsqrt(p2-4q) (mod n).
一个重要的有趣特例是设S(k) = V(2k+1)/22k