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

 N=147573952589676412927=2^67−1

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

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

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

  N=2^67−1=pq

  p=193707721,q=761838257287

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

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

[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回だけですみ探索アルゴリズムを見つけた.

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