2005.03.01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
MRM [ MOTOMACHI RADIO MAIL ]                                Vol.008
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

......................................................................
SUMMARY
- 不定期連載「それがどうした」 [5] 約数のはなし・後編
  - 元町二十四軒    :検索家
-おしらせ

----------------------------------------------------------------------
不定期連載「それがどうした」
----------------------------------------------------------------------
[5] 約数のはなし・後編
                                                  元町二十四軒:検索家

-- 前編のおさらい ----------------------------------------------------

  前編では「素数とはどんな数か」「素数の判定方法」「素数表の作り方」「
素因数分解とは何か」「累乗の表記方法」「素因数分解の手順」についてお話
しました。なんのためにそんな話をしたのかというと後編のゴールである「10
00以下の数で約数が最も多いものは何か?」という問題の解き方を説明するた
めの準備のためです。じゃあなんで「1000以下の数で約数が〜」という問題の
解き方を説明するのかというと特に意味はありません。以上簡単ではございま
すが、前編のおさらいを終わります。前編をもう一度見ておこうという熱心な
方はこちらをどうぞ。 → http://gadd9.com/mrm/006.html

  ところで前回1つ面白い話を書き忘れてました。今回の話題には全く関係無
いのですが書いておきましょう。「素数は無限にあります」。これは、馬鹿馬
鹿しいくらい単純な方法で証明することができます。

  もし、素数が有限個しかないとします。その場合「全ての素数を掛けた数に
1を足した数」はどの素数で割っても1余ります。ということは「全ての素数
」以外の素数で割りきれるか、「全ての素数を掛けた数に1を足した数」自身
が素数であるかのいずれかです。何れにせよ「全ての素数」の他にも素数が存
在することとなり、最初の仮定に矛盾します。よって素数は無限にあることが
証明されました。

  時々「最大の素数が発見された」というニュースを見かけることがあります
が、あれは日本語をよく知らない人が書いているのでしょう。「現在知られて
いるどの素数よりも大きな素数が発見された」というべきです。ニュースの見
出しとしては面白みがなくなりますが、嘘はいけません。

  余談はこれくらいにして、本題にはいります。

-- 素因数分解の話 の補足 ---------------------------------------------

  約数の個数の求め方を説明する前に、素因数分解に関する定理を補足してお
きます。重要でかつ一見自明な定理ですが、証明しようと思ったら結構面倒で
す。本稿では証明を避けますので、興味のある方は「素因数分解の一意性」で
検索してみてください。

      定理:「素因数分解は必ずできる。かつ一通りの方法しかない」

  要は、素因数分解した結果が「2×2×2×3×3×5」になったり「2×2×2×2
×3×7」になったりすることはないということです。もの凄く当たり前のこと
のようですが、こういった事に疑問を持つのが数学という学問です。以下、こ
の定理を前提として話を進めます。ただ、この定理を意識する必要はありませ
んし、定理自体の意味が解らなくても支障は無い筈です。

-- 約数の個数の話・入門 ----------------------------------------------

  素因数分解の結果から約数を求める方法を二段階に分けて説明します。まず
は入門編から。とその前に記号を決めておきます。素数を p と書きます。こ
れは2でも3でも5でも良いからとにかく素数という意味に取ってください。
あと、整数を n や m で表します。

・p の約数は2個
  これについては特に説明は要らないと思います。疑問に思った方は「1とそ
の数自身以外に約数を持たない数が素数である」ということを思い出してくだ
さい。

・p^n の約数は n+1 個
  ここからは少し説明が要るかもしれません。まずは具体例を挙げてみましょ
う。2の1乗(=2)については先程確認したとおり約数は2個となります。ま
た、2の2乗(=4)の約数は1、2、4の3個、2の3乗(=8)の約数は1、
2、4,8の4個です。いずれも指数+1になっていることが確認できます(指
数は「AのB乗」のBの事)。どうしてこのようになるのでしょう?まず、 p
^n は p^m (ただし n>m または n=m)で割ることが出来るという点に注目し
てください。これは、

    (p^n)÷(p^m) = (p*p* … *p)÷(p*p* … *p) = (p*p* … *p)
                   <-- n個  -->  <-- m個  -->   <- n-m個  ->

  となるためです。よって、まずは「p^m(ただし m = 1 〜 n。全部でn個)
は p^n の約数」であることが解ると思います。また、前回少しだけ書きまし
たが、p^0 = 1 です。1 も当然 p^n の約数なので「p^m(ただし m = 0 〜 n。
全部でn+1個)は p^n の約数」と言うことができます。次に p^n は p 以外の
素数では割ることができません(p^n に関する素因数分解の一意性より)。つ
まり、p 以外の素数で割ることの出来る数は何であれ p^n の約数となること
はできない訳です(ここも同様)。従って、p^n の約数は、先程の n+1個で全
てということになります。

  ちょっと面倒な説明になりましたが、もう一度最初の例に戻って、2の4乗、
2の5乗の約数の数を考えると「p^n の約数は n+1 個」がお解り頂けると思
います。

-- 約数の個数の話・応用 ----------------------------------------------

  入門では一個の素数だけを掛けた数を例に約数の数を考えました。今度は、
一般的な整数に関して考えてみます。まずは異なる2つの素数 p と q を使い
ます。

・p×q の約数は4個
  pの約数は1とp、qの約数は1とqです。p×q の約数は、1, p, q, p×q の4
つです。具体例として6の約数を考えると解りやすいと思います。どうしてこ
の4つが p×q の約数となるかは次の例で説明します。

・(p^n)×(q^m) の約数は (n+1)×(m+1)個
  この辺りから小学生はついてこれなくなるころでしょうか。このルールが成
り立てば上の「p×q の約数は4個」も「(p^1)×(q^1)の約数は(1+1)×(1+1)=
4個」と説明がつきます。では、このルールが成り立つ理由を説明する前に、
まずは具体例をとして12の約数について検証します。12=(2^2)×(3^1) ですの
で、n=2、m=1 です。よって約数の数は(2+1)×(1+1) = 3×2 = 6 個となる筈
です。実際に12の約数は 1、2、3、4、6、12 の 6個であることが確認できる
と思います。

  理由を簡単に説明します。まず、(p^n)×(q^m) の約数は素因数分解すると
必ず、(p^a)×(q^b) となります。ただし、指数 a, b はそれぞれ a = 0 〜 n、
b = 0 〜 m です。つまり、p, q 以外の素数で割れる数は約数になれないし、
n や m より多く素数 p, q を掛けた数でも割ることができません(これまた
素因数分解の一意性から導かれます)。

  この結果を基に、約数の個数を考えてみましょう。(p^a)×(q^b)は、a が n
+1 通り、b が m+1 通りあることから、(n+1)×(m+1)通りあります。これは「
帽子を3つ、マフラーを2つ持っている場合に帽子とマフラーの組み合わせは
何通りあるでしょう?ただし帽子・マフラーを身につけないのも可とする」と
いう例えが解りやすいかと思ったのですが、かえって解りにくくなったような
気がします。「一円玉が3枚、十円玉が4枚あります。この7枚のコインでお
つり無しに払うことが出来る金額は何通りあるでしょう?ただし、一円玉、十
円玉を使わないと言う選択もあるとする」だとどうでしょうか。これなら一円
玉は0枚〜3枚の4通り、十円玉は0枚〜4枚の5通りの出し方があるので、
それぞれを組み合わせて 4×5 = 20通りあることが解ります(疑り深い人の為
に20通り全部書いておきましょう:0, 1, 2, 3, 10, 11, 12, 13, 20, 21, 22,
 23, 30, 31, 32, 33, 40, 41, 42, 43)。

  またたとえが長くなりました。とにかく、(p^n)×(q^m) の約数は (p^a)×(
q^b) のみで、それは (n+1)×(m+1) 通りあるので、約数の数は (n+1)×(m+1)
 となります。

・(p^n)×(q^m)×…×(r^k) の約数は (n+1)×(m+1)×…×(k+1)個
  最後に一般解です。先程は2つの素数の累乗で表される数について説明しま
したが、3つ以上の素数の累乗の場合も全く同様です。素因数分解の結果から
全ての指数に関して1を足して掛ければ良いわけです(素数そのものは約数の
数に全く関係ないことに注意)。本項に関しては説明の代わりに具体例を1つ
挙げておきます。

・360の約数の数を求める
  360を素因数分解すると 360 = 2^3×2^2×5^1 となります。よって、約数の
数は、(3+1)×(2+1)×(1+1) = 4×3×2 = 24個です。具体的には次のようになっ
ています。

                              360の約数
       -------------------------------------------------------
       (2^0)×(3^0)×(5^0) =   1  |  (2^0)×(3^0)×(5^1) =   5
       (2^1)×(3^0)×(5^0) =   2  |  (2^1)×(3^0)×(5^1) =  10
       (2^2)×(3^0)×(5^0) =   4  |  (2^2)×(3^0)×(5^1) =  20
       (2^3)×(3^0)×(5^0) =   8  |  (2^3)×(3^0)×(5^1) =  40
       (2^0)×(3^1)×(5^0) =   3  |  (2^0)×(3^1)×(5^1) =  15
       (2^1)×(3^1)×(5^0) =   6  |  (2^1)×(3^1)×(5^1) =  30
       (2^2)×(3^1)×(5^0) =  12  |  (2^2)×(3^1)×(5^1) =  60
       (2^3)×(3^1)×(5^0) =  24  |  (2^3)×(3^1)×(5^1) = 120
       (2^0)×(3^2)×(5^0) =   9  |  (2^0)×(3^2)×(5^1) =  45
       (2^1)×(3^2)×(5^0) =  18  |  (2^1)×(3^2)×(5^1) =  90
       (2^2)×(3^2)×(5^0) =  36  |  (2^2)×(3^2)×(5^1) = 180
       (2^3)×(3^2)×(5^0) =  72  |  (2^3)×(3^2)×(5^1) = 360
       -------------------------------------------------------

-- 約数をたくさん持つ数 ----------------------------------------------

  ここで、約数をたくさん持つ数の条件を考えてみましょう。先程「約数の数
は素因数分解した際の各素数の指数に1を足した値を掛けた値に一致する」こ
とを説明しました。要は、掛け算によって求められる数ですから「1.それぞれ
の掛ける数が大きいほど」そして「2.掛ける数が多いほど」結果は大きくなり
ます。つまり、素因数分解した際に「1.各素数の指数が大きいほど」そして「
2.素数の数が多いほど」約数が多い訳です。繰り返しになりますが、素数自体
は約数の数には何の影響もありません。

  従って、より小さい数でたくさんの約数を持つようにしたい場合は「小さい
素数ほど、指数を大きく」「小さい素数から順に素数の種類を増やす」ことが
重要です。例えば、「2^3×3^2」と「2^2×3^3」はそれぞれ72と108ですが、
約数はともに12個となります。逆に、○個の約数を持つ最小の数は?という問
いは次のように解くことができます(20個の素数の場合を例に説明)。

1.約数の数20を素因数分解して大きい順に並べる。素因数分解の結果は累乗を
  使わないで掛け算のみで表す。→ 20=5×2×2
2.素数を小さい順に1.の結果で書けている数の個数分だけ用意する。→ 1.の
  結果は、5×2×2 で3個の数を掛けていたので、用意する素数は 2、3、
  5
3.約数の個数の素因数分解の結果からそれぞれ1を引いた数を2で用意した素
  数の指数とする数を掛ける → 2^(5-1)×3^(2-1)×5^(2-1) = 2^4×3^1×5^
  1 = 16×3×5 = 240
  つまり、約数を20個持つ最も小さい数は240となります。

  ここで面白いことに「○個の約数を持つ最小の数」というのは○の値が大き
いほど大きいとは限らないという現象が起きています。試しに、先ほどの方法
を用いて、○が2〜20の場合に「○個の約数を持つ最小の数」がどうなるかを
見てみましょう。

          約数の数(=○)     約数を○個持つ最小の数      変化
          --------------------------------------------------
           2=2           → 2^1                =      2
           3=3           → 2^2                =      4  >>
           4=2×2        → 2^1×3^1           =      6  >>
           5=5           → 2^4                =     16  >>
           6=3×2        → 2^2×3^1           =     12  <<
           7=7           → 2^6                =     64  >>
           8=2×2×2     → 2^1×3^1×5^1      =     30  <<
           9=3×3        → 2^2×3^2           =     36  >>
           10=5×2       → 2^4×3^1           =     48  >>
           11=11         → 2^10               =   1024  >>>
           12=3×2×2    → 2^2×3^1×5^1      =     60  <<<
           13=13         → 2^12               =   4096  >>>
           14=7×2       → 2^6×3^1           =    192  <<<
           15=5×3       → 2^4×3^2           =    144  <<
           16=2×2×2×2 → 2^1×3^1×5^1×7^1 =    210  >>
           17=17         → 2^16               =  65536  >>>
           18=3×3×2    → 2^2×3^2×5^1      =    180  <<<
           19=19         → 2^18               = 262144  >>>
           20=5×2×2    → 2^4×3^1×5^1      =    240  <<<
          --------------------------------------------------

  「素数個の約数を持つ最小の数」のところで極端に大きな値になっているこ
とが解るかと思います。


-- 約数を最も持つ数 --------------------------------------------------

  最後に、本題の「1000以下の数で約数を最も多く持つ数は何か?」という問
題の解き方を解説します。話を解りやすくするために1000以下としましたが、
考え方は1000でも1億でも違いはありません。

  最も単純な方法は「実際に試してみる」ことです。2〜1000までの全ての数
に関して、素因数分解をしてその結果から約数の数を計算すれば、その中で最
も約数を持つ数を求めることができます。ただ、この方法は恐ろしく時間がか
かります。1000の平方根は31.6…ですから、31までの素数表を用意して、素因
数分解を999回行って、約数の数の計算を999回行うことを想像してみるといか
に面倒な方法であるかお解りいただけると思います。また、素因数分解という
のは時間がかかる計算なので避けたいところです。

  では、考え方を逆にして「○個の約数を持つ最小の数」の求め方を使い、○
をどんどん大きくして「○個の約数を持つ最小の数」1000を超えるのを待つと
いう方法はどうでしょうか?これは先ほどの表で説明したとおり、「○個の約
数を持つ最小の数」の増え方は単調ではないことから、最初に1000を超えた時
点では安心できません。「この先、1000を下回ることがない」ということを示
せない限りこの方法は使えません。またこの方法は「○個の約数を持つ最小の
数」は求めることができますが、1000以下の数で○個の約数を持つ数はひとつ
とは限らないという欠点もあります。

  そこで、確実に結果が求められてかつ計算コストが少ない方法として、素因
数分解を行うのではなく、1000以下の数に関して「素因数分解の結果を先に用
意し、約数の数が最大になる数を求める」という方法を紹介します。

0.紙と鉛筆と電卓(暗算が得意な人は不要)を用意します。もちろんPC上でテ
  キストエディタやエクセルを使っても構いません。

1.まず、「1    1」と書きます。左側が約数を求める数、右側が約数の数の組
  です。「1の約数は1個」という意味です(以下、本稿では縦に並べて書き
  ます)。
       1
    --------
       1

2.以下、最小の素数2から始めて、素数pに関して順に「現在表に掲載されて
  いる全ての数Aに関して、A×p^n(nは1以上)の約数の数を求めて表に書
  き込む」という操作を行います。ここで、A×p^n の約数の数は「Aの約数
  の数×(n+1)」となることに注目してください(いままで出てきたことだけ
  で説明できますので、あえて証明は省略します)。

3.具体的に見てみましょう。最初は表に掲載されている数は1のみですので、
  1×2^n の約数の数を求めて行きます。2^10 は1024ですので、nは1〜9で
  す。
     1   2   4   8  16  32  64 128 256 512
    --------------------------------------
     1   2   3   4   5   6   7   8   9  10
  これで2を0回以上掛けてできる1000以下の数が全てピックアップされまし
  た(10個)。この時点で、最も約数の多い数は512の10個です。

4.次の素数3についても同じことをします。つまり、上の表に出ている10個の
  数Aに関して、A×3^n を求めます(Aが徐々に大きくなるので、nはそれ
  ほど大きな数にはなりません)。A×3^nの約数の数は「Aの約数の数×(n+
  1)」です。上の表の続きは次のようになります。
    A=1                    A=2                  A=4
     3   9  27  81 243 729 |  6  18  54 162 486 | 12  36 108 324
    -----------------------+--------------------+-------------------
     2   3   4   5   6   7 |  4   6   8  10  12 |  6   9  12  15

    A=8             A=16         A=32         A=64      A=128  A=128
     24  72 216 648 | 48 144 432 | 96 288 864 | 192 576 | 384  | 768
    ----------------|------------+------------+---------+------+----
      8  12  16  20 | 10  15  20 | 12  18  24 |  14  21 |  16  |  18

  これで2と3を0回以上掛けてできる1000以下の数が全てピックアップされ
  ました(29個)。この時点で、最も約数の多い数は 864 の24個です。

5.次の素数5についても同じことをします。つまり、上の表に出ている29個の
  数Aに関して、A×5^n を求めます。実際にはAが200より大きければ、A
  ×5^nは最初から1000を越えてしまうので、29個全てに関して求める必要は
  ありません。A×5^nの約数の数は先程と同様に「Aの約数の数×(n+1)」で
  す。上の表の続きは次のようになります。
    A=1            A=2          A=4          A=8           A=16
     5  25 125 625 | 10  50 250 | 20 100 500 | 40 200 1000 | 80 400
    ---------------|------------+------------+-------------+--------
     2   3   4   5 |  4   6   8 |  6   9  12 |  8  12   16 | 10  15

    A=32    A=64  A=128  A=3          A=9       A=27    A=81
    160 800 | 320 | 640  | 15  75 375 | 45 225 | 135 675| 405
    --------+-----+------+------------+--------+--------+-----------
     12  18 |  14 |  16  |  4   6   8 |  6   9 |   8  12|  10

    A=6         A=18     A=54  A=162 A=12     A=36      A=108
     30 150 750 | 90 450 | 270 | 810 | 60 300 | 180 900 | 540
    ------------+--------+-----+-----+--------+---------+-----------
      8  12  16 | 12  18 |  16 |  20 | 12  18 |  18  27 |  24

    A=24     A=72  A=48  A=144 A=96   A=192
     120 600 | 360 | 240 | 720 | 480  | 960
    ---------+-----+-----+------------+-----------------------------
      16  24 |  24 |  20 |  30 |  24  |  28

  これで2と3と5を0回以上掛けてできる1000以下の数が全てピックアップ
  されました(75個)。この時点で、最も約数の多い数は 720 の30個です。

6.次の素数7についても同じことをします。つまり、上の表に出ている75個の
  数Aに関して、A×7^n を求めます。実際にはAが142より大きければ、A
  ×7^nは最初から1000を越えてしまうので、75個全てに関して求める必要は
  ありません。A×7^nの約数の数は先程と同様に「Aの約数の数×(n+1)」で
  す。上の表の続きは次のようになります。
    A=1        A=2          A=4      A=8      A=16      A=32  A=64
     7  49 343 | 14  98 686 | 28 196 | 56 392 | 112 784 | 224 | 448
    -----------+------------+--------+--------+---------+-----+-----
     2   3   4 |  4   6  8  |  6   9 |  8  12 |  10  15 |  12 |  14

    A=128 A=3      A=9      A=27  A=81  A=6      A=18      A=54
     896  | 21 147 | 63 441 | 189 | 567 | 42 294 | 126 882 | 378
    ------+--------+--------+-----+-----+--------+---------+--------
      16  |  4   6 |  6  9  | 8   |  10 |  8  12 | 12  18  |  16

    A=12    A=36  A=10  A=24  A=72  A=48  A=96  A=5      A=25
     84 588 | 252 | 756 | 168 | 504 | 336 | 672 | 35 245 | 175
    --------+-----+-----+-----+-----+-----+-----+--------+----------
     12  18 |  18 |  24 |  16 | 24  |  20 |  24 |  4   6 |   6

    A=125 A=10     A=50  A=20      A=100 A=40  A=80  A=15
     875  | 70 490 | 350 | 140 980 | 700 | 280 | 560 | 105 735
    ------+--------+-----+---------+-----+-----+-----+--------------
       8  |  8  12 |  12 |  12  18 |  18 |  16 |  20 |   8  12

    A=75 A=45  A=135 A=30  A=90  A=60  A=120
     525 | 315 | 945 | 210 | 630 | 420 | 840
    -----+-----+-----+-----+-----+-----+----------------------------
      12 |  12 |  16 |  16 |  24 |  24 |  32

  これで2と3と5と7を0回以上掛けてできる1000以下の数が全てピックア
  ップされました(75個)。この時点で、最も約数の多い数は 840 の32個で
  す。

  そろそろ怒られそうです。どこまで続ければよいのでしょうか?答えは微妙
なのですが「1000以下の数で約数を最も多く持つ数」を見つけるだけなら、こ
こまでで充分です。その理由は「2×3×5×7 < 1000 < 2×3×5×7×11」にあ
ります。何度か説明したとおり、約数の数は素因数分解をした際の素数の個数
とそれぞれの指数で決まり、素数そのものの値には依存しません。よって、使
われる素数の個数が最大になるのは、小さい順に素数を掛けて最大値を超えな
い範囲内となります。今回の例で言うと、1000 < 2×3×5×7×11 ですから、
1000以下の数を素因数分解すると必ず4種類以下の素数しか登場しないことが
わかります。

  一方、「1000以下の数で約数を最も多く持つ数」をひとつ残らず見つけるた
めには、7まででは不安が残ります。例えば、先ほど見つかった 840 を素因
数分解すると、840 = 2^3×3^1×5^1×7^1 となります。何度も言ってるよう
に、ここで大事なのは素数の値ではなく、個数と指数ですから素数部分を別の
素数に取り替えても約数の数は変わりません。この場合、最も近い値となるの
は 7 を 11 に代えた場合、つまり 2^3×3^1×5^1×11^1 です。幸いこれは 1
320 となり1000以下ではなくなるのでアウトです。結果として、1000以下の数
で最も約数の多い数は 840のみ(32個)であることが解りました。

  ここから先は恥ずかしいことに証明ができていないのですが、充分大きな数
を対象としているのであれば、先ほどのように「小さい順に素数を1回づつ掛
けて最大の数を超える素数」で終了しても大丈夫なようです。少なくとも「X
以下の数で約数を最も多く持つ数」を求める際にXが4桁より大きければ、こ
の方法が有効です。

  それでは安心できないという方の為に、確実に証明できる基準を言えば「X
の平方根を越える直前の素数まで」です。簡単に証明してみましょう。前編の
「エラトステネスのふるい」で説明したように「Xの平方根より小さい素数で
割ることができないX以下の数」は素数です。逆にいうと、Xの平方根を越え
るまで先程の長くて退屈な操作を繰り返せば、X以下の素数でないすべての数
に関して検討が終了しているわけです。つまり残ってるのは素数だけです。素
数の約数の数はすべて2なので、最大となり得ないのは言うまでもありません。


  ただし、Xの平方根を越えるまで先程の作業を繰り返すのはかなり面倒です。
実際にどれくらい違いがあるのか見てみましょう。下のリストは、X と 「A
:小さい順に素数を1回づつ掛けてXを超えない最大の素数」と「B:Xの平
方根を越えない最大の素数」の一覧です

                              X   A   B
                         -------------------
                             100    5    7
                            1000    7   31
                           10000   11   97
                          100000   17  313
                         1000000   19  997

  これを見ると、Xが大きくなるほどAとBの差が開く事が解ると思います。
更にこんな事実もあります。Xが1000000の場合には、先程の表によると 19 
まで試せば、最大の数の約数を持つ数が見つかる筈です。そこで先程と同様の
方法をやってみると(これはさすがに手では無理なので、プログラム作って計
算しました)次の5つの数が最大の約数を持つ(240個)ことが解りました。

    831600 = 2^4×3^3×5^2×7^1×11^1
    997920 = 2^5×3^4×5^1×7^1×11^1
    982800 = 2^4×3^3×5^2×7^1×13^1
    720720 = 2^4×3^2×5^1×7^1×11^1×13^1
    942480 = 2^4×3^2×5^1×7^1×11^1×17^1

  この結果を見ると 19 は登場していません。つまりこの場合はAという基準
をも下回る段階で済んでいたわけです。まして確実に全て求められる基準であ
るB(997)まで試す必要は全く無いであろうと言うことは容易に想像が付き
ます。では、どの素数で試行停止しても良いのかという点については、今回は
結論を出すことが出来ませんでした。

-- 最後に ------------------------------------------------------------

  少々最後は物足りない結末になってしまいましたが、約数の話はこの辺で終
わりにしたいと思います。算数の話を文字だけで表すのは辛いと言うことが良
くわかりました。次回はもう少し、読むのが苦痛でないテーマを考えようと思
います。なお、今回のアルゴリズムでそのまま動作するスクリプトを試せるペー
ジが下記の場所にあります(要 JavaScript ON)。あまり大きな数を試すとこ
けるのでご注意ください。

 → http://homepage1.nifty.com/basil-jams/measures.html

                                     http://d.hatena.ne.jp/motomachi24
                                                          元町二十四軒

----------------------------------------------------------------------
おしらせ
----------------------------------------------------------------------
  MRM Vol.008は以上で終わりです。実際に居るかどうか自信が無いのです
が、最後までお読みいただいた方は、本当にありがとうございました。金のマ
メ賞をお贈りしたいくらいです。

  さて、次回の予告です。3/3 に発行予定の Vol.009では、Vol.007に掲載し
た質問4へお寄せ頂いた回答と質問5を掲載する予定です。Vol.007について
はこちらをご覧ください。

  → http://gadd9.com/mrm/007.html

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
・MRM [ MOTOMACHI RADIO MAIL ] Vol.008
  発行部数  Web:計測不能 / メール:5通
  発行  元町二十四軒
  編集  元町二十四軒

・購読方法については、http://gadd9.com/mrm/ をご覧ください。バックナン
  バーも同じページから見ることが出来ます。
・お問い合わせ、寄稿は motomachi24@nifty.com 宛にお願い致します。
・寄稿に当たっては、掲載するお名前・肩書き(架空で構いません)・サイト
  のURL(掲載希望の場合)も併せてお知らせ頂けると幸いです。
・内容を許可無く転載することを禁じます。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                      Copyright(C)2005 MOTOMACHI. All rights reserved.