多timod ()函数原理
素数检测'''主要是素数检测f_n_1()函数将n-1分解为2^r*d,奇数为dMultimod ) )函数将Miller_Rabin ) n,k )函数快速幂分解调用前两个函数进行miller _ k k表示错误概率返回True。 结果素数错误概率为[1/4] * * k ] ' ' fromrandomimportrandintdeff _ n _1(n ) :r=0ifn%2==03360n=n/n=0) 3: 2 returnansdefmimii ITER _ num (: #2isprime IFN==2: return true # ifnisevenorlessthan 2,thennisnotaprimeifn1=s=n-1,0 while m1==0: m=m1s=1# m-rtest for _ in range (ITER _ num ) :b=multimod ) randint,n-1 ) n ) IFB==1orb==n-1: continue for _ in range (s-1 ) : b=multimod(b ) b,2, n ) IFB==n-1: break else : returnfalsereturntrue素数生成示例(生产大素数def g_p ) :p=randint )2* * 64,2 * * 65 ) while=