フェルマーの小定理をMATLABで計算してみる

フェルマーの小定理は\(p\)が素数、\(a\)を\(p\)の倍数でない整数とすると

\begin{align}
a^{p-1} \equiv 1 \pmod{p}
\end{align}

が成り立つというものである。\(\mathrm{mod}\)は\(p\)で割ったときの余りを示している。

今回はMATLABで関数を定義し計算を行う。なお入力の\(a,p\)はベクトルであり、次元を合わせてあれば大きさは問題にならない。

ソースコード

a=[2,4]; p=[4,5]; 

[f,~]=Fermat_little_theorem(a,p);

f

function [result,result1] = Fermat_little_theorem(a,p)
for i=1:1:length(a)
    if rem(a(1,i),p(1,i))==0
        error('You cannot select multiples of p!')
    end
end
result1=a.^(p-1);
result=mod(result1,p);
end

コメント

タイトルとURLをコピーしました