1年に1回ある「素数の日」について、2年前の記事で紹介しました。ほぼ同じ記事ですが、西暦も加えた8桁で考えてみました。
最初に結論
1223 は、下の桁の 3、23、223、1223 が、すべて素数になっています。このような数は、1223 だけです。だから、12月23日を素数の日と呼ぶのはどうでしょうか。
このような日は以下の17日しかありません。素数が4個でてくるのは、12月23日だけです。
103
107
113
223
307
313
317
503
523
607
613
617
823
907
1013
1103
1223
年(西暦)も合わせるとどうなるの?
残念ながら、20241223 は素数ではありません。
12月23日に西暦4桁を前に加えた8桁が素数になる年を求めてみましょう。以下の C プログラムで1900年から2100年でこのような年を求めました。
#include <stdio.h>
int is_prime(int n)
{
int answer = 1;
int i;
if (n <= 1) {
answer = 0;
}
for (i = 2; i * i <= n; ++i) {
if (n % i == 0) {
answer = 0;
break;
}
}
return answer;
}
int main(void)
{
int year, month, day;
int leap;
int date;
for (year = 1900; year <= 2100; ++year) {
int date = year * 10000 + 1223;
if (is_prime(date) == 1) {
printf("%8d\n", date);
}
}
return 0;
}
出力は、以下となります。
19131223
19141223
19161223
19311223
19321223
19371223
19381223
19491223
19611223
19621223
19701223
19771223
19911223
19951223
19981223
20031223
20181223
20251223
20371223
20401223
20421223
20431223
20461223
20491223
20641223
20721223
20781223
20821223
20851223
20911223
20931223
来年の12月23日は、素数になるようです。楽しみにしておきます。
最後に
プログラムで計算して、このようなことが分かると楽しくなります。