摘要: 测试一个数是否为素数。当这个数很小时,我们当然可以用试除法(用2到sqrt(N)看能否整除N)来做素性测试。当这个数很大时,例如1024bit即1~2^1024,这个方法就显得效率太低。考虑一个数有k位,每增加一位,N增大一倍,试除法此时是指数级别的算法。对于大整数的素性测试,一般用Miller-Rabin算法。它是一个基于概率的算法,是费马小定理(若n是一个素数,a^(n-1) mod n == 1;反之,n有可能是一个素数)的一个改进。理论基础:若n是一个素数,a>= 1 # b, b^2, b^4, b^8, ... , b^(2^n) b = (b*b) %... 阅读全文
posted @ 2013-11-01 08:55 7hat 阅读(2283) 评论(4) 推荐(0) 编辑