primitiveroot.m

来自「vigenere密码解密的matlab实现」· M 代码 · 共 35 行

M
35
字号
function g = primitiveroot(n);% This function finds a primitive root for n% Handle Trivial caseg=0;if (n==2),   g=1;else   phi=eulerphi(n);   f=factor(phi);   fln=length(f);   y=2;   while y<n,      flag=0;      if (gcd(y,n)==1),         j=1;         while (j<=fln),            b=powermod(y,phi/f(j),n);            if (b==1),               j=fln;  % force break from for j loop               flag=1;            end; %endif            j=j+1;         end; %end while j      end; % end if gcd      if ~flag,         g=y;         y=n;  % force break out of y loop      end;       y=y+1;   end;  % end while yend;  % end if-else            

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?