PARI/GPは、t_INT
の最小素因数を見つけたり、そうでなければ整数の部分分解を行う関数を持っていますか?例えば最小素因数を見つける関数
、私は数がある場合:
a=261432792226751124747858820445742044652814631500046047326053169701039080900441047539208779404889565067
をa
は2個の巨大な素因数を含んでいるので、それはfactor(a)
を行うには長い時間がかかります。しかし、17
はa
の約数であることが分かります。
もちろんこの場合、私は要因を見つけるためにちょうどforprime(p=2,,a % p == 0 && return(p))
または同様の試験区分を使用していた可能性があります。しかし、最小の要素が20桁の小数点を持っていたとすれば、それは実際的ではないと思われます。その場合、洗練された方法factor
を使用したかったでしょう。
私はフラグのいくつかの種類が、私は部分的な因数分解して幸せになりますと言って、あるいは私が気にすべて最小非自明な除数であると言ってfactor
を呼び出すことができますのであれば、それは理想的である、など
[Lenstra楕円曲線分解](https://en.wikipedia.org/wiki/Lenstra_elliptic-curve_factorization)(小因子の取得を専門とする)の変形について考えましたか?それが何らかの要因を見つけたら、それを改変して中断することができます。 –
@JosephWood PARIの 'factor'または' factorint'関数は、すでにそのアプローチの1つとして楕円曲線メソッドを使用しています。私は私自身の楕円曲線の実装をコード化することができることを知っていますが、PARI/GPに何か組み込みがあるかどうか尋ねていました。 –
PARIライブラリには便利な 'Z_factor_until'関数があります。しかし、あなたが最も小さい素因を見つけたことを証明することは、一般的には簡単ではありません。一つの選択肢を選択してください:特別な数字でのみ働く、確かではなく、長い実行時間。小さな数字でしか動作しません。 – Charles