Main Content

factorIntegerPower

完全累乗の因数分解

説明

x = factorIntegerPower(n) は、数値 n をその 完全累乗 xk に因数分解し、基数 x を返します。完全累乗が複数存在する場合、x は最大値 k に対して返されます。関数 factorIntegerPower は配列入力の要素ごとに働きます。

[x,k] = factorIntegerPower(n) は、基数 x と指数 k の両方を返します。

すべて折りたたむ

64 をその完全累乗に因数分解します。数値に対して完全累乗が複数存在する場合、最大値 k が返されます。

n = 64;
[x,k] = factorIntegerPower(n)
x =
     2
k =
     6

7841、および 2541865828329 の完全累乗を求めます。

n = [7 841 2541865828329];
[x,k] = factorIntegerPower(n)
x =
     7    29     3
k =
     1     2    26

数値を再構成します。x をシンボリック型に変換することで、浮動小数点ではなく厳密なシンボリック整数を返します。

sym(x).^k
ans =
[ 7, 841, 2541865828329]

数値が完全累乗でない場合、factorIntegerPower は数値自体を指数 1 付きの基数で返します。そのため、数値がその基数と等しくないのであれば、その数値は完全累乗です。

125 が完全累乗であるかどうかをチェックします。isequal は logical 0 (false) を返します。これは、125 が返された基数と等しくないことを意味します。そのため、125 は完全累乗です。

n = 125;
isequal(n,factorIntegerPower(n))
ans =
  logical
   0

入力引数

すべて折りたたむ

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

出力引数

すべて折りたたむ

完全累乗の基数。数値、ベクトル、行列、配列、あるいはシンボリック数または配列として返されます。

完全累乗の指数。数値、ベクトル、行列、配列、あるいはシンボリック数または配列として返されます。

バージョン履歴

R2018a で導入

参考