ifactor - 整数の素因数分解
使い方
ifactor(n)
ifactor(n, method)
パラメータ
n - 整数または有理数
method - (オプション) 素因数分解するための基礎方法の名前
|
説明
|
|
•
|
ifactor は、n の整数による完全な素因数分解を返します。
|
•
|
答えは次のような形です。 n = u * f1^e1 * ... * fn^en となるような u * ``(f1)^e1 * ... * ``(fn)^en 。ただし u は sign(n) に等しく、f1, ..., fn は n の相異なる素因数で、e1, ..., en はそれらの重複度です (有理数の分母の場合は負)。
|
•
|
expand 関数を適用すると、それらの因数を再び掛け合わせます。
|
•
|
2 番目のパラメータが指定される場合、フロント-エンドコードが因数分解を達成できないとき、名前 method が使用されるでしょう。デフォルトでは、 Morrison-Brillhart アルゴリズムが基礎方法として使われます。現在許容されている名前は次のものです。
|
'squfof' - D. Shanks' undocumented square-free factorization;
'pollard' - J.M. Pollard's rho method;
'lenstra' - Lenstra's elliptic curve method; and
'easy' - which does no further work.
•
|
'easy' オプションが選ばれると、 ifactor 呼び出しの結果は、容易に計算できる素因数と因数分解できなかった m 桁の合成数であることを示す名前 _c.m._.n との積になります。ここで n はこの合成数が一意的であることを保つ (しかし、それからは一意的であることが導かれない) ような整数です。
|
•
|
pollard の基礎方法は、付加的なオプションの整数を受けつけます。因数の1つが、 k*m+1 の形をしているとき、ifactor(n,pollard,k) は、この方法の効率を増します。
|
|
|
例
|
|
| (2.1) |
| (2.2) |
| (2.3) |
| (2.4) |
| (2.5) |
| (2.6) |
>
|
n := 8012940887713968000041:
ifactor( n, easy );
|
| (2.7) |
| (2.8) |
|
factor, GaussInt/GIfactor, ifactors, isprime, numtheory/factorEQ, type[facint]
|
Download Help Document
Was this information helpful?