因数分解在面对200位数时捉襟见肘,使用费马检查能够在几秒钟内得出结论。
先了解一下什么是费马小定理
费马小定理:
如果n是一个素数,a是小于n的任意正整数,那么a的n次方与a模n同余(两个数称为是模n同余,如果它们除以n的余数相同)
即: a n ≡ a a^n \equiv a an≡a (mod n)
费马检查
对于给定的整数n,随机任取一个a<n并计算出
a
n
a^n
an取模n的余数,有以下两种结果
- 如果不等于a,则n肯定不是素数。
- 如果是a,则n是素数的概率就大于一半。
另取一个随机的a并采用同样的方式检查,如果也满足上式,则n是素数的概率就大于四分之三。通过更多随机选择的a进行检测,可以使出现错误的概率减小到需要的任意程度。