「モンゴメリーのはしご」はシンプルで美しいが、最速のアルゴリズムではない。高速化を追求した実装では、代わりに「リュカの鎖」と呼ばれるアプローチが使われる。対応する値が決定される。この方法は、日本の研究者スヤマ・ヒロミ(*)のアイデアに基づく。おいて「位数が12の倍数になるように、スヤマが示唆した実装を行った」と述べている。527ページに記されている。初版(**)が公開されたとき、スヤマはブレントに私信を送り、このような観察を伝えたらしい。8235109336690846723986161この方法だと、曲線1個0.2秒で済む(テスト環境での実測値=以下同じ)。1個5秒かかっていた最初のテストとは大違いだ。ラッキー・シグマが341と大きいので、曲線を300個以上試す必要があり、このままでは因数分解成功までに約75秒かかる。ステージ2を併用すれば、どちらも10秒以内に分解される。行について、メルセンヌ・ウィキでは「x-座標との最大公約数を取る」としているが、z-座標との最大公約数を取る方が、ほんの少し因数の検出力が向上する。大きさがギリギリ足りている」場合、違いが生じる。計算を毎回ループ内で行っていたが、この計算をループに入る前に1回だけ行うように改めた(2016年9月4日)。これによって、理論上0.1%程度の高速化が見込まれる。実測では有意な速度差はなかった。「4で割る」処理には近道も考えられるが、これはテスト用のスケルトンなので、単純にそのまま計算している。関連する問題ついては、補足3参照。ついて、ステージ1で因数が検出されなくても、続けてステージ2を行うことができる。多くの場合、成功はステージ1ではなくステージ2で起きるので、ステージ2の役割は大きい。処理することができる。間にある素因数については、ちょうど1個であることが必要。かかわらず、ステージ2は成功しない。間に2個の因数があるからだ。この制約はあるものの、素因数分解の結果は「特に大きい因数が1個。それ以外の因数はどれも比較的小さい」というパターンを持つことが多いので、ステージ2は実用上うまくいきやすい。計算不能となり、分解成功するのだった。倍数にするには1個だけ因数が足りなかった。あと1歩、及ばなかった」という状況であることが分かる。間に存在するある素数だ。α(アルファ)としよう。