「次の数が素数であるかを判定せよ。素数でなかった場合は素因数分解をおこなうこと。
(1)191
(2)259
(3)101」(1)191
素数判定をするには、判定したい自然数の正の平方根以下の素数を約数にもつかを調べます。
191の正の平方根\sqrt{191}はおよそ13.8なので、\sqrt{191}以下の素数は2,3,5,7,11,13となります。
191が上記の素数のどれを約数にもつかを調べてみるとどれも約数にもちません。
したがって、191は素数であることがわかります。
したがって、191は素数であることがわかります。
自然数nが素数であるかは正の平方根\sqrt{n}以下の素数を約数にもつかで判定できるのですが、\sqrt{n}以下の素数から\sqrt{n}の整数部分以下の素数と範囲を狭めても問題ありません。
ところで、\sqrt{n}の整数部分をaとおくと、これの2乗a^2は平方数となります。
\sqrt{n}の整数部分aは\sqrt{n}以下の最大の整数なので、a^2はn以下の最大の平方数となります。
したがって、この素数判定法の調べる素数の範囲を「自然数n以下の最大の平方数a^2の正の平方根a以下の素数」のように定めてもよいということになります。
(1)を例にしてこの方法をもちいてみると
191以下の最大の平方数は13^2=169なので、13以下の素数を約数にもつかを調べるとどれも約数にもちません。
したがって、191は素数であることがわかります。
(2)259
259以下の最大の平方数は15^2=225なので、15以下の素数を約数にもつか調べます。
15以下の素数は2,3,5,7,11,13です。この中で259の約数となるのは7で、259は
259=7\times37
と書けます。
37を素数判定すると、6^2=36より6以下の素数2,3,5のいずれも約数にもたないので素数であることがわかります。
(実は、259が15以下の素数を約数としてもつかを小さい順に調べていたなら37の素数判定のために調べる必要のある素数がわかった時点で37が素数であると判定できます。素数2,3,5が37のいずれかを約数としてもつならそれは259との公約数でもあるので、7より先に約数としてもつことを見つけるはずだからです。)
(実は、259が15以下の素数を約数としてもつかを小さい順に調べていたなら37の素数判定のために調べる必要のある素数がわかった時点で37が素数であると判定できます。素数2,3,5が37のいずれかを約数としてもつならそれは259との公約数でもあるので、7より先に約数としてもつことを見つけるはずだからです。)
したがって、
\large259=7\times37
が解答となります。
(3)101
101以下の最大の平方数は10^2=100なので、10以下の素数を約数にもつか調べます。
10以下の素数は2,3,5,7です。ここで、互いに素であることを利用して素数の候補を絞り込む方法を紹介します。
100と101は隣り合う整数なので互いに素です。すなわち、101は100の素因数2,5のいずれも約数にもたないということです。
したがって、10以下の素数2,3,5,7のうち3,7を約数にもつかだけを調べればよいことがわかります。
101は3,7のいずれも約数にもたないので、101は素数であることがわかります。
Share: