小知识(5)判断素数

判断一个大数是不是素数。

引入费马小定理:对于任意的a<n 如果a^(n-1)=1(mod n)成立,那么我们认为p是一个素数。

但是求一个2^n,当n很大的时候,就不行啦。

于是用幂模运算(快速幂取模):(a^b)%c = ((a%c)^b)%c

还看到了一种做法,挺好玩:

如果 a^(n-1)%n ==1 (0<a<n) 则它可能是合数可能是素数。随机取一个 a,如果它不满足 a^(n-1)%n ==1,则它一定是合数,退出,如果它满足 a^(n-1)%n ==1,则它是一个素数的概率是1/2,返回第一步。就是看概率,重复次数越多,是素数概率越大。

哎嘿,放题:

http://120.78.128.11/Problem.jsp?pid=2788

至于埃式筛欧拉筛就不说了。

posted @ 2021-01-31 21:44  Untergehen  阅读(54)  评论(0编辑  收藏  举报