■N=2^67−1の素因数分解(その2)

 N=147573952589676412927=2^67−1

をあなたは素因数分解できますか?

===================================

 この数はずっと素数だと考えられていたが,実は2つの素因数がある.1903年に

  N=2^67−1=pq

  p=193707721,q=761838257287

が発見されたことは大きな驚きであった.コンピュータができるよりもさらにずっと前のことで,計算はすべて手計算で行われたからである.

 1903年の国際会議のとき,コウルは立ち上がって演壇に進み,2^67−1をかき,それから

  761838257287×193707721

と続けた.一言もしゃべらなかったが,拍手が起こって彼は席についたという.

 後日ETベルが彼に素因数分解するのにどれくらい時間がかかったか訊いたところ,コウルの答えは「日曜日が3年さ」だった.

===================================

[1]Nを2から√Nを超えない最大の整数まででひたすら割り,割り切れるかどうかを調べる方法は効率的ではない.

  √N=2^(1/2logN)

なので,多項式時間の範囲では終わらないからである.  

[2]1994年,ショアは量子コンピュータなら,任意のNを多項式時間で因数分解できることを示した.

 ショアのアルゴリズムでは,N=pq,p≠2,q≠2,p≠qであることが要請されるが,それはたいした制約にはならないだろう.

 最初の3つの素数は2(唯一の偶数の素数),3,5であるから,N=15はショアのアルゴリズムを使って素因数分解できる最小の数である.

[3]N個のデータ検索では少なくとも1回,多ければN回,平均してN/2回の検索を行うことになる.

[4]1996年,グローヴァーは量子コンピュータなら,N個のデータ検索を√N回だけですみ探索アルゴリズムを見つけた.

===================================