効率的にGCDを計算するには?

私は$ A = langle text {GCD}(a、j)、j = 2,3、..、k-1 rangle
$を計算し、$ j $の各値が$ a $ 。 $ omega( log j)$ airthmeticの$ j
$の単一固定値に対してGCD(a、j)、$ j = 2,3、..、k-1 $と$ a le j
$を計算できますオペレーション。

簡単に$ O(k log k)$ airthmetic操作で$ A $を計算することができます。

Question : How to compute set $A$ in $O(k)$
many arithmetic operations?

ベストアンサー

このような線状ふるいを使う:

https://e-maxx-eng.appspot.com/代数/プライム –
シーブ – linear.html

線形時間で範囲$ j = 2,3、..、k-1 $のすべての数を因数分解することができます。

そこから、範囲内の各数値のいくつかの素数(例えば、最小)を持つ配列が得られます。それを使って、$ A
$を順番に埋めることで問題を解決することができます。そして、新たな数$ j $ごとに、素数の除数を使って、$ a $と$ j
$の大きな指数を見つけて、あなたの答えを得るために$ A
$で計算された結果。私はそれが線形時間で実行するこの最後の部分を完全には確信していませんが、可能でなければなりません。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です