午後のひとときに、素数だけを使った等差数列を考えてみるよ。


素数とは、1と自分自身の2つしか約数を持たない2以上の自然数。
2, 3, 5, 7, 11, 13, 17, 19, … のように無限に存在する。

等差数列とは、公差が等しい数列です。


素数だけを使った有限個の等差数列を考えましょう。

2, 3
は、初項2、末項3、公差1、項数2の等差数列。

3, 5, 7
は、初項3、末項7、公差2、項数3の等差数列。

3, 7, 11
は、初項3、末項11、公差4、項数3の等差数列。

項数3の等差数列が2種類見つかりました。
末項はそれぞれ7、11です。
今回は末項が最小の物を見つけることにしましょう。

5, 11, 17, 23, 29
は、初項5、末項29、公差6、項数5の等差数列。

あれ?
項数4の等差数列が見つかっていませんね。


末項が最小の項数4の等差数列を求めよ。

出来るだけ項数が多い等差数列を求めよ。

みたいなプログラミングの課題が出来そうです。


プログラミングするには、ちょっと難しそうですね。

ある素数を末項として、いくつかの公差を考えて、遡って数える。
というようなことになるのですが、公差を枝刈りする必要がありますね。

例えば、公差3、公差5、公差7、公差9なんてものは存在しない
なぜでしょう。

公差の条件は、1を除くと、
2
2・3=6
2・3・5=30
2・3・5・7=210
2・3・5・7・11=2310

といった素数を小さい方から掛けていった数の定数倍に限られるからです。

43142746595714191, 
48425980631694091, 
53709214667673991, 
58992448703653891, 
64275682739633791, 
69558916775613691, 
74842150811593591, 
80125384847573491, 
85408618883553391, 
90691852919533291, 
95975086955513191, 
101258320991493091, 
106541555027472991, 
111824789063452891, 
117108023099432791, 
122391257135412691, 
127674491171392591, 
132957725207372491, 
138240959243352391, 
143524193279332291, 
148807427315312191, 
154090661351292091, 
159373895387271991, 
164657129423251891, 
169940363459231791, 
175223597495211691
は、
公差2・3・5・7・11・13・17・19・23・23681770=5283234035979900
項数26
の等差数列です。

さて、どんな数列を見つけることが出来ますか?


ではでは