「次の数が素数であるかを判定せよ。素数でなかった場合は素因数分解をおこなうこと。
(1)191191
(2)259259
(3)101101」(1)191191
素数判定をするには、判定したい自然数の正の平方根以下の素数を約数にもつかを調べます。
191191の正の平方根√191√191はおよそ13.813.8なので、√191√191以下の素数は2,3,5,7,11,132,3,5,7,11,13となります。
191191が上記の素数のどれを約数にもつかを調べてみるとどれも約数にもちません。
したがって、191191は素数であることがわかります。
したがって、191191は素数であることがわかります。
自然数nnが素数であるかは正の平方根√n√n以下の素数を約数にもつかで判定できるのですが、√n√n以下の素数から√n√nの整数部分以下の素数と範囲を狭めても問題ありません。
ところで、√n√nの整数部分をaaとおくと、これの2乗a2a2は平方数となります。
√n√nの整数部分aaは√n√n以下の最大の整数なので、a2a2はnn以下の最大の平方数となります。
したがって、この素数判定法の調べる素数の範囲を「自然数nn以下の最大の平方数a2a2の正の平方根aa以下の素数」のように定めてもよいということになります。
(1)(1)を例にしてこの方法をもちいてみると
191191以下の最大の平方数は132=169132=169なので、1313以下の素数を約数にもつかを調べるとどれも約数にもちません。
したがって、191191は素数であることがわかります。
(2)259259
259259以下の最大の平方数は152=225152=225なので、1515以下の素数を約数にもつか調べます。
1515以下の素数は2,3,5,7,11,132,3,5,7,11,13です。この中で259259の約数となるのは77で、259259は
259=7×37259=7×37
と書けます。
3737を素数判定すると、62=3662=36より66以下の素数2,3,5のいずれも約数にもたないので素数であることがわかります。
(実は、259が15以下の素数を約数としてもつかを小さい順に調べていたなら37の素数判定のために調べる必要のある素数がわかった時点で37が素数であると判定できます。素数2,3,5が37のいずれかを約数としてもつならそれは259との公約数でもあるので、7より先に約数としてもつことを見つけるはずだからです。)
(実は、259が15以下の素数を約数としてもつかを小さい順に調べていたなら37の素数判定のために調べる必要のある素数がわかった時点で37が素数であると判定できます。素数2,3,5が37のいずれかを約数としてもつならそれは259との公約数でもあるので、7より先に約数としてもつことを見つけるはずだからです。)
したがって、
259=7×37
が解答となります。
(3)101
101以下の最大の平方数は102=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: