📄 primetest.m
字号:
function z=primetest(n);% This function tests a number n for primeness.% It uses the Miller-Rabin primality (compositeness) test% z=1 means prime% z=0 means compositeT=30; % hard coded amount of times we test % increasing T decreases chance something is prime when it isn't. % Probability of error is bounded by (1/4)^T% First, express n-1 as n-1 = r * 2^s if mod(n,2)==0, z=0; return;else r=n-1;s=0;while (mod(r,2)==0), s=s+1; r=r/2;end;for j=1:T, %test T times a=2+floor(rand(1,1) * (n-4)); y=powermod(a,r,n); if ((y~=1) & (y~=n-1)), k=1; while ( (k<=s-1) & (y ~= n-1)), y=mod(y*y,n); if y==1, z=0; % n is composite return else k=k+1; end; %end if-else end; %end while if (y ~= n-1), z=0; % n is composite return end; end; %end ifend; %end forend; %end ifz=1; %final case is it passed all tests and is prime
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -