• 2024-08-13数学:素性测试算法
    算法简介对一个数的素性测试有很多种做法,有确定性测试的算法,也有概率性测试的算法。确定性素性测试算法确定性素性测试这里介绍两种:线性筛法:利用线性筛在\(O(n)\)的时间复杂度内,将一个范围内的数素性全部求出,然后\(O(1)\)查询。试除法:在\(\sqrt{n}\)内试商,判定是否
  • 2024-07-23素性测试算法
    素数拥有许多特殊的性质,这让它在计算机科学中被广泛应用。例如,著名的RSA加密算法基于两个质数的乘积的难分解性;同时,其正确性基于质数的费马小定理和一些推论。因此,快速判定一个大整数是否是质数是重要的课题。试除法由于质数\(p\)只有\(1\)和\(p\)两个正因数,对于正整
  • 2024-04-14Miller–Rabin 素性测试
    Miller–Rabin素性测试(Miller–Rabinprimalitytest)是进阶的素数判定方法。它是由Miller和Rabin二人根据费马小定理的逆定理(费马测试)优化得到的。因为和许多类似算法一样,它是使用伪素数的概率性测试,我们必须使用慢得多的确定性算法来保证素性。然而,实际上没有已知的数字通过
  • 2024-03-06费马素性检验(python实现)
    费马素性检验:给定奇整数n>=3和安全参数t1、随机选取整数b,(b,n)=1,2<=b<=n-22、计算r=b的n-1次方(modn)3、如果r!=1,则n是合数4、上述过程重复t次以下是python代码,如发现错误,请跟博主联系importrandom#n>=3且n是奇整数n=int(input())t=int(input())defgcd(a,b):wh
  • 2024-01-24数论——Fermat素性检验、Miller-Rabin素性检验
    数论——Fermat素性检验、Miller-Rabin素性检验试除法与素性测试试除法:所有的试除法,无论是\(\mathcalO(n)\)的还是\(\mathcalO(\sqrtn)\)的,其本质都相同:即找\(n\)可能存在的因子\(k\),判断\(k\midn\)。素性测试:旨在不用分解因数的方式,判断一个数是否为质数;素性
  • 2023-09-16素性检验问题和模平方根问题
    因为这两种算法都是随机化算法且都与数论问题有关,而且还有许多微妙的联系,因此放在一起整理.素性检验问题(主要参考资料:【朝夕的ACM笔记】数论-MillerRabin素数判定-知乎(zhihu.com))(不完善的)Fermat素性检验:由Fermat小定理可知,对于素数$p$,所有$a\in[1,p-1]$,$a^{p-
  • 2023-05-26有关素数的基础算法 素性测试 埃氏筛法
    所谓素数,是指恰好有两个约数的正整数。因为n的约数都小于n,所以只需要检查2~ n-1之间所有的整数是否整除n就能判定n是不是素数。如果d是n的约数,那么n/d也是n的约数。由n=d*n/d可知min(d,n/d)  ,所以只需要检查2~ 之间的所有整数就足够了。同理可知,整数分解和约数枚举都
  • 2022-11-30Miller-Rabin 素性测试算法
    Miller-Rabin素性测试算法需要如下两个引理:1.费马小定理设\(p\)是素数,\(a\)为整数,且\((a,p)=1\),则\(a^{p-1}\equiv1\pmod{p}\)证明:考虑\(1,2,3,\dots,(p-1)\)
  • 2022-11-28寻找因子和素性检验
    《初等数论及其运用》6.1章节Wilson定理对于\(p\),\[(p-1)!\equiv\left\{\begin{array}{ll}-1&p是素数\\2&p=4\\0&p\neq4且是合数\\\end{arra
  • 2022-10-07Miller-Rabin快速素性判断
    利用二次探测定理和费马小定理二次探测定理:\(x^2\equiv1(mod\;p)\)\(p\)是奇素数当且仅当$x\equiv1$或者\(x\equiv-1\)我们结合费马小定理,对于将要