部分引用自:
http://blog.csdn.net/fisher_jiang/article/details/986654
很大部分引用自:
http://www.matrix67.com/blog/archives/234
从零开始~
同余式
同余式的定义
如果两个正整数a和b之差能被n整除,我们就说a和b对模n同余,记作 a ≡ b (mod n)
同余式的运算
+ - * 均可, / 的时候注意:
-
若c与n互质,则有 a / c ≡ b / c ( mod n )简单解释: 如果ac≡bc(mod m),且c和m互质,则a≡b(mod m) (就是说同余式两边可以同时除以一个和模数互质的数)。
证明:条件告诉我们,ac-mp = bc-mq,移项可得ac-bc = mp-mq,也就是说(a-b)c = m(p-q)。这表明,(a-b)c里需要含有因子m,但c和m互质,因此只有可能是a-b被m整除,也即a≡b(mod m)。 [matrix67] -
若a / c ≡ b / c ( mod n ) , 则不一定有c与n互质.反例: 4 ≡ 64 (mod 10) 两边同除以c = 2 (n = 10)2 ≡ 32 (mod 10)
Wilson定理
当且仅当p为素数时:( p -1 )! ≡ -1 ( mod p ).
简要来说就是{ 2..p-2 }之间的数可以两两配对,乘积与1模p同余.
因此这些连乘的部分都可以换成1,只剩下了 1* ( p-1 ).由最后一式,得证.
[但是为什么可以两两配对, 目前还没看懂, 以后看懂了补上吧]
Wilson定理有很高的理论价值.但实际用于素数测试所需要计算量太大,无法实现对较大素数的测试.到目前为止,尚未找到素数测试的有效的确定性算法.
Fermat小定理
著名的费马小定理为素数判定提供了一个有力的工具.
费马小定理:如果p是一个素数,且(0<a<p),则