Weekend Mathematics/問題/問題31
31.素数の問題
悩め!パスラ−(挑戦その1)
アンジェラ・フォックス・ダン編
啓学出版
(ペンネ−ム:さだやん)
一の位が偶数のものは2の倍数ですから素数ではありません。
残りのうち,一の位が5のものは5の倍数ですから素数ではありません。
その残りの下の位は
9,987,9876543,987654321,……
の繰り返しですが,いずれも,3の倍数で,上の位 987654321×(10の累乗)もまた
3の倍数です。
以上により,
あるものは,2や5の,他のものは3の倍数になり,素数はなし。
答え 解なし
感想
ぱっと見て,「これは私には無理」と思いました。
無限に続くとなると一般解になりそうで私の能力を超えると思ったのです。
それで,一番小さい素数を見つけて,「努力賞」をねらうというか誠意を見せよう?と
思いました。
ところが,繰り替えし部分は3の倍数になること,下の位は2か3か5の倍数になり0個
とわかりました。
「取りあえず,やろうとしてみる」のがよかったと思います。
実際,これで,もし,
一番小さい素数が見つかったとしたら,私には手に負えなかったでしょう。
(ペンネ−ム:Chee)
[解答]
まずは、2つばかり補題を
(当たり前で(?)補題というのもおこがましいので、証明は後で)。
補題1)
3つの連続する数(とりあえず1〜9に限定)から作られる数は3で割り切れる。
たとえば、987や654など。
補題2)
3で割り切れる数の後ろに、3で割り切れる数を続けて作った数は、
3で割り切れる。
たとえば、3の後ろに9を続けてつくった39など。
まず、9(3で割れる)も98(2で割れる)も素数でないので、
987以降の数列について考えます。
つまり、3桁以上を想定します。
ここで、与えられた数列のそれぞれの数を、
「上の桁から3桁ずつ区切り、あまった下の桁の数」で分類すると、
数列の規則(9〜1を繰り返し使う)より、次の6つのグループに分かれます:
最後の桁が、9,98,6,65,3,32 ・・・これを「最後の桁」と呼
ぶことにします。
さて、補題1より、最初の3桁は、3で割れますし、
以降の3桁づつ区切った分もそれぞれ3で割れるので、
補題2より、結局「最後の桁」が3で割れるかどうかで、
その数が3で割れるかどうかが確定します。
最後の桁が3で割れるのは、9,6,3の3つのグループです。
また、最後の桁がないもの(3桁ずつ区切りきれたもの)は、補題1と補題2より、
3で割り切れます。
結局、最後の桁が98,65,32のもの以外の(数列中の)
すべての数は3で割り切れてしまいます。
残った3つのグループは、下1桁が偶数と5なので、
いずれも2か5で割り切れてしまいます。
結果、この中に素数はありません。
# あれ?
[補題1の証明]
3桁の数を「ABC」と書いたとします。
「ABC」 = A×100+B×10+C = A×99+B×9+(A+B+C) = 3×(A×33+B×3)+(A+B+C)
A,B,Cのうち最小の数をaとすると、のこりの2つはそれぞれ、
a+1,a+2 となり、
A+B+C = a+(a+1)+(a+2) = a×3+3 = 3×(a+1)
結局、「ABC」 = 3×(A×33+B×3)+3×(a+1) = 3×(A×33+B×3+a+1) となり、3で割り
切れる。
[補題2の証明]
くっつける前の数をAとし、くっつけた数をBとして、Bの桁数をkとすると、
作った数は、
A×10k + B
AもBも3で割り切れるので、それぞれ 3×a, 3×b とおくと、
A×10k + B = 3×a×10k + 3×b = 3×(a×10k+b)となり、3でわりきれる。
# 小学校のころ、
(ペンネ−ム:浜田 明巳)
連続する3n(nは自然数)個の整数の和は3の倍数である.
したがって素数の候補として,
これは1000000桁以下の数列内に素数の候補
(=奇数であり、3の倍数でなく、5の倍数でない数)
があるかどうかをチェックするプログラムです。
Sub sosuu() Dim max, a(1000000) As Long: max = 1000000 Dim wa, kosuu, j, jj As Integer: wa = 0: kosuu = 0 For j = 1 To max a(j) = 9 - ((j - 1) Mod 9): wa = (wa + a(j)) Mod 3 If wa > 0 And a(j) Mod 2 = 1 And a(j) <> 5 Then kosuu = kosuu + 1 For jj = 1 To j: Selection.TypeText Text:=a(jj): Next Selection.TypeParagraph End If Next If kosuu = 0 Then Selection.TypeText Text:=Str$(max) + "桁以下の数には,素数はありませんでした." Selection.TypeParagraph End If End Sub実行した結果、 「 1000000桁以下の数には,素数はありませんでした.」が表示されました。
(ペンネ−ム:ちゃめ)
(答え) 素数は存在しない。
(T)2は数列のメンバーではない。
(U)1の位が2,4,6,8である、
数列のメンバーは2の倍数であることにより、
1の位が5であるメンバーは5の倍数であることにより、それぞれ素
数ではない。
(V)1の位が、1,3,7,9の場合を考える。
「ある自然数が3の倍数である必要十分条件は
その数の各位の数字の和が3の倍数である」ことは既知とする。
(ペンネ−ム:ものもの)
偶数および1の位が5の自然数は素数でないことは明らか、
よって、1の位が1、3、7、9の場合について考える。
987・・・1987・・・1・・・987654321 | |
= | 98765431×10a+987654321×10b+・・・+987654321 |
= | 987654321×(・・・) (各項、987654321が約数なので) |
987・・・1987・・・1・・・9876543 | |
= | 987654321×10a+987654321×10b+・・・+9876543 |
= | 3×(・・・) (各項、3が約数なので) |
987・・・1987・・・1・・・987 | |
= | 987654321×10a+987654321×10b+・・・+987 |
= | 3×(・・・) (各項、3が約数なので) |
987・・・1987・・・1・・・9 | |
= | 987654321×10a+987654321×10b+・・・+9 |
= | 3×(・・・) (各項、3が約数なので) |
(ペンネ−ム:まめ)
このような無限数列中に素数はない。
【理由】まず、9〜987654321までで考えてみます。
下一桁が偶数と、5は素数ではないのでのぞきます。
残ったのは、9、987、9876543、987654321
これらの、各位の和をとってみると、9、24、42、45
となり、いずれも3の倍数であることがわかります。
従って、9〜987654321は、偶数か、3の倍数か、5の倍数のい
ずれかで、結局この中に素数はありません。
さて、以上の結果、987654321は3の倍数ですから、
これに10のn乗をかけたものも3の倍数です。
つまり、987654321以降の数列は、常に「○○+3の倍数」
という形を持っていることになります。
これ以降も、下一桁が偶数と5の数字をのぞけば、下の桁は
9、987、9876543、987654321
のいずれかであり、これらはいずれも3の倍数です。
これに3の倍数を加えるわけなので、
できあがった数もやはり3の倍数であるはずです。
以上の考察より、この無限数列には素数は存在しません。
(ペンネ−ム:ふー)
まずは9〜987654321までの1巡について、
9(3の倍数)
98(偶数)
987(3の倍数)
9876(偶数)
98765(3の倍数)
987654(偶数)
9876543(3の倍数)
98765432(偶数)
987654321(3の倍数)
2巡目以降は
・・・9=3の倍数×n+9=3の倍数
・・・98=偶数
・・・987=3の倍数×n+3の倍数=3の倍数
・・・9876=偶数
・・・98765=3の倍数×n+3の倍数=3の倍数
・・・987654=偶数
・・・9876543=3の倍数×n+3の倍数=3の倍数
・・・98765432=偶数
・・・987654321=3の倍数×n+3の倍数=3の倍数
このように必ず2、または、3の倍数となるので素数は無い!!
3の倍数かどうかを判断するための考え方、
「各位の数の和が3の倍数であればよい」を知っていたのでわかりました。
(ペンネ−ム:Chee)
これは、「整数:a,b,cが等差数列になっていて、
a×b×cが素数になるもの」という意味で良いのでしょうか?
そう解釈して以下進みます。
[解答]
素数の約束から、因数(の絶対値)が1とただ一つの
素数しかあってはいけないので、
a,b,cのうち、一つだけが(絶対値が)素数で、
あとの二つは1もしくは−1(絶対値が1)。
絶対値が1のものが、どちらも1(または−1)だと、
等差数列の条件から3番目の整数も1(または−1)となり、
積の結果も1(または−1)で、素数にならない。
結局、a,b,cは、「−1、1、(絶対値が)ある素数」から選ぶことになる。
−1と1の間には素数がないことと、−1と1の差分が2であることに注意すると、
「(絶対値が)ある素数」となる整数は、−3。
結局求める数列は、「−3、−1、1」で、積は3。
# ところで、素数ってのは、2以上だとしていいんですよね。
(ペンネ−ム:さだやん)
解 -a,-1,1
とおくと,-1-(-a)=1-(-1)=公差 a:素数
なので,a=3
答え -3,-1,1 (または1,-1,-3)
感想
ぱっと見て,「これは無理」というか,「解なし」と思いました。
気をとりなして考えてみました。
等差数列ということから, a-d, a, a+d
素数ということから, 1,1,a
ふうむ。 -1×0×1=0 ?????
でもないし,…………
あっ,そうか。 a, -1, 1 とおくと 公差が2だから,a=-3
解けてみると,それほど難しくないような気になってしまうから不思議。
(ペンネ−ム:ちゃめ)
3整数のなす等差数列の公差をk(0でない整数)とし、
3つの整数を n-k, n ,n+k とする。
この3数が題意を満たせば、n+k, n, n-k も題意を満たすので、k>0
で考えれば十分。
s=(n-k)×n×(n+k)
sが素数となるためには、
「3つの数のうちいずれか2つの積の絶対値が1である」(*)
ことが必要である。
|(n-k)(n+k)|=1
をk>0で解くと、(n,k)= (0,1)。
このときs=0となり不適。
よって、条件(*)を満たすためには
|n(n-k)|=1または |n(n+k)|=1 であることが必要。
|n(n-k)|=1 をk>0で解くと (n,k)=(1,2)
このとき、 s=(-1)×1×3=-3 で不適。
|n(n+k)|=1をk>0で解くと、(n,k)=(-1,2)
このとき、 s=(-3)×(-1)×1=3 でsは素数。
以上から、求める3つの整数は、{-3, -1, 1} ・・・ (答え)
( 等差数列の公差を考慮すると (-3, -1, 1) と (1, -1, -3) )
(ペンネ−ム:月の光)
初項−3、項差2の数列
-3 ,-1 ,1 三つかけると3(素数)になる。
項が整数の等差数列ではこれだけのように思います。
複素数で考えると、初項1-ai、項差aiの数列
1-ai , 1 , 1+ai は掛けると 1+a2になります。
この形の素数は無限にあるのではないでしょうか。
(ペンネ−ム:小春)
-3,-1,1のとき公差 2の等差数列をなしています。
(ペンネ−ム:ZEN & TUNAKI)
等差2の数列で、−3、−1、1が、三つの整数です。
(ペンネ−ム:数楽者)
−3、−1、1
説明
絶対値が2以上の数が2つあってはだめ。
当然0もだめ。
したがって、3つのうちの2つはー1と1である。
積が正になることを考慮すると、もう一つの数は−3である。
(ペンネ−ム:Y次郎)
-3 , -1 , 1
絶対値1以外の2整数をかけて正の整数になった場合
そのどちらの整数の絶対値でも割り切れるので、素数ではない。
また、0が混じるものは論外。
よって、絶対値1以外の整数は2つ以上あってはならない。
すると、必然的に -1、1が入る。
よって、積が正になるものは -3 , -1 , 1
(ペンネ−ム:ありさのお父さん)
(-3, -1, 1) 全部かけて 3 になります。
一瞬,「数をかけ合わせて素数になるはずがないでしょ! 変な問題!」
と思いましたが,すぐに整数は自然数じゃないことに気づきました。
余談:
私のノートブックに入っている辞書(マイペディアという簡易型の百科事典です。)
によると,
そすう【素数】
一とその数自身との外には約数がない正の整数。#一は除く。
やくすう【約数】
整数(整式)Aが他の整数(整式)Bで割り切れる時の、Aに対するBのこと。
⇔倍数
せいすう【正数】【整数】
(1) 【正数】零より大きい数。⇔負数。#positive numberの訳語。
(2) 【整数】零およびそれに次次に一を加えたり引いたりして得られる範囲の数。
#integerの訳語。
この定義だと,約数は正の数という限定がありませんので,
1を除く全ての数 n に対して,
n = (-n)×(-1)
で,n が整数なら (-n) も整数で,(-n) は n でも 1 でもありませんから,
素数はこの世に存在しないことになってしまいます。
kiyo | さだやん | ありさのお父さん | 数楽者 | 浜田 明巳 |
水の流れ | みや | Chee | ちゃめ | 月の光 |
ものもの | 小春 | まめ | ZEN & TUNAKI | ふー |
Y次郎 |
問題1について
素数についての話は
5.カ−ドの問題でもしました。
次の数で割り切れるかどうかを判定する方法をもう1度示します。
2・・・下1桁が偶数なら割れる
3・・・各桁の数字を足してみてそれが3で割り切れれば、割れる。
4・・・下2桁が4で割り切れれば割れる
5・・・下1桁が5か0なら割れる
6・・・2で割れて、3で割れれば、割れる
7・・・下から3桁ごとに区切り、奇数番目のものの和と、偶数番目のものの和の差が7の倍数なら割れる。
8・・・下3桁が8で割り切れれば割れる
9・・・各桁の数字を足してみてそれが9で割り切れれば、割れる。
10・・・下1桁が0なら割れる(我ながらつまらないことかいてるなあ・・・)
11・・・奇数桁の和と偶数桁の和の差が、11の倍数なら割れる
12・・・4で割れて、3で割れれば、割れる
13・・・下から3桁ごとに区切り、奇数番目のものの和と、偶数番目のものの和の差が13の倍数なら割れる。
これについての詳しい証明
この問題の場合、「987654321」がどの位置にこようとも
(×10n、nは任意)、それ以下の桁が2,3,5の倍数なら、元の数も
2,3,5になるので、めでたくすべて合成数(素数でないもの)となります。
「さだやん」さんのおっしゃる通り、素数がみつかりだすと大変かもしれません。
大きな数になったときに、その数Nが素数か否か、判定するための方法はこれといってないからです。
仕方ないですから、2、3、5、7、11、13、17・・・と素数で順番に割っていってNの約数を探すしかないでしょう。
それをまで繰り返して見つからなければNは素数です。
なぜ、まで探せば充分なのでしょうか?
約数は必ずペアがいるからです。もし、を越えたところに約数がみつかったなら
実はそのパ−トナ−がより前にいたはずですよね。
だからまでで充分なのです。
問題2について
「かけて素数?」ということで、あれっ? と思った方もいるかと思います。
私もその1人です。それがおもしろくて出題してみました。
「Chee」さんのコメントにある「1は素数か?」という点ですが、
「1は素数ではない」といのが結論です。
もしかしたら、「1も素数」とするという立場で論理を展開することもできるのかもしれませんが・・・。
ではなぜ1を素数としないのでしょうか?
それは1以外の正の整数(自然数)の素因数分解の一意性を保証するためです。
素因数分解の一意性 1でない正の整数は、素数の積として、一意的にかける。 |
というものです。
例えば、12=2×2×3と素因数分解されます。
これはかける順番を考慮しなければただ1通りの分解になります。
ところが、1も素数ということにしてしまうと、
12=1×2×2×3
12=1×1×2×2×3
・・・などいくらでも、分解の方法があることになってしまうからです。
「素数」という名称はよくつけたものだなあと思うのですが、数(自然数)の「素」になっている、
それらに必ず分解できる、そこには1を入れない方が自然、というわけですね。
また整数論に限らず、この素因数分解の一意性が定理の証明などに
重要な役割を果たしている場面があります。
ところで、素数にまつわる話をもう1つ。
合成数が連続5個続いているところを見つけられますか?
合成数が連続100個続いているところを見つけられますか?
最初に現れる、合成数連続5個は、{24,25,26,27,28}です。
これは比較的簡単に見つけることだできます。
では連続100個はどうでしょう?
101!+2、101!+3、・・・、101!+101という連続した100個の整数を考えます。
最初にある101!+2は2で割り切れますから2の倍数です。
2番目の101!+3は3で割り切れますから3の倍数です。
・・・
最後に101!+101は101で割り切れますから101の倍数です。
というわけで、これらは100個の連続した合成数となります。
しかしながら、これが連続100個の合成数として、最小のものかどうかはわかりません。
ただ、存在は示したというだけです。
同様に作ればいいわけですから、
実は任意のNに対して、合成数連続N個というのを見いだすことができます。
ただしご想像の通り、それはとてつもなく大きい数になるでしょう。
素数というのは、まだまだわかっていないことも多く、本当に魅力的な存在です。