ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

powermod

数値のモジュラーべき乗

構文

powermod(a,b,m)

説明

powermod(a,b,m) はモジュラーべき乗 ab mod m を返します。ab を計算せずにモジュラーべき乗を計算するには、powermod を使用します。

すべて折りたたむ

powermod を使用して、モジュラーべき乗 ab mod m を計算します。関数 powermod は、指数 ab を計算しないので効率的です。

mod(3^5,7) を計算します。

powermod(3,5,7)
ans =
     5

フェルマーの小定理は、p が素数で a が p によって割り切れない場合、a(p–1) mod p1 であるというものです。

p = 5a = 3 の場合にフェルマーの小定理をテストします。予想どおり、powermod1 を返します。

p = 5;
a = 3;
powermod(a,p-1,p)
ans =
1

p より小さい a のすべての値に対して同じケースをテストします。関数 powermod は要素ごとに 1 のベクトルを返すように働きます。

p = 5;
a = 1:p-1;
powermod(a,p-1,p)
ans =
     1     1     1     1

フェルマーの小定理は、p が素数で a が p によって割り切れない場合、a(p–1) mod p1 であるというものです。2 を底とするフェルマーの小定理を使用して、300 から 400 までの数の素数性をテストします。結果を isprime と比較してフェルマーの擬素数を求めます。

300 から 400 までの素数性をテストします。

N = 300:400;
remainder = powermod(2,N-1,N);
primesFermat = N(remainder == 1)
primesFermat =
   307   311   313   317   331   337   341   347   349   353...
   359   367   373   379   383   389   397

isprime と比較してフェルマーの擬素数を求めます。341 はフェルマーの擬素数です。

primeNumbers = N(isprime(N));
setdiff(primesFermat,primeNumbers)
ans =
   341

入力引数

すべて折りたたむ

入力。数値、ベクトル、行列、配列、あるいはシンボリックな数値または配列で指定されます。a は整数でなければなりません。

入力。数値、ベクトル、行列、配列、あるいはシンボリックな数値または配列で指定されます。b は非負の整数でなければなりません。

入力。数値、ベクトル、行列、配列、あるいはシンボリックな数値または配列で指定されます。m は非負の整数でなければなりません。

R2018a で導入