Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, 05-21-2008
前置き:ピタゴラス数
直角三角形の短い辺の2乗の和は長い辺の2乗に等しい.a2 + b2 = c2.ピタゴラスの定理とか三平方の定理と呼ばれる.
直角三角形の3辺とも整数だと,ピタゴラス数と呼ばれる.僕はピタゴラ数と呼んでいる.
32 + 42 = 52 が有名.62 + 82 = 102 もピタゴラス数なんだけど,(6,8,10) は 2 で割ったら,(3,4,5) になる.ちょっと負けている感じ.
(3,4,5) の様にこれ以上割れないピタゴラス数を 原始ピタゴラス数 と呼ぶ.3つの数の最大公約数が1なら原始,1でなければそうでない,ということだ.
例えば 282 + 452 = 532 は原始ピタゴラス数で,242 + 452 = 512は,24, 45, 51 全てが 3 で割れるので,原始ピタゴラス数ではない.
本題:ピタゴラス数をみつけよう
ピタゴラ数をみつけよう(リンクは下)の使い方.(諸事情により全て英語なので)
X : という窓に数字をいれて,Submit ボタンを押す.
その数を含むピタゴラ数 (Pythagorean Triples) が表示される.原始ピタゴラス数 (primitive Pythagorean Triples) はちょっと特別仕様で表示される.
それぞれのピタゴラス数の最大公約数 (gcd = greatest common divisor) もついでに表示される.原始ピタゴラス数の場合,最大公約数は 1 だ.
X に入力した数から10個について解く.例えば,100 と入力したら 100 から 109 までを含むピタゴラス数を表示する.
そんなに大変な計算でないんだけど,あまり桁数が多くなると表示が崩れるので,上限は1億となっている.
つけたし
原始ピタゴラス数でないのがない場合 X は素数 (prime number),という性質がある.例えば 8999 と入れると,ピタゴラス数はひとつしか無くて,それが原始ピタゴラス数なので,8999 が素数ということが判明する.少し下に行くと 9,001 も素数ということが判る.双子素数だ.
ピタゴラス数をみつけよう(正式名称は Pythagorean Triples Finderなんだけど)
プログラムは R で書かれてる.下の方にリンクがある.でも僕はプログラマーではないので,プログラムがよく出来てなくても大目に見て下さい.