Twitterだと思うのですが、今朝、「今日の日付「20201101」は素数になる」というのを目にして、一日、気になっていました。
日付を8桁年月日で表示した場合の数が素数になるというのです。
今日の日付「20201101」は確かに素数です。
自分で計算してみました。
すると意外に多いのでがっかりしました。
2020年の8桁年月日が素数になる日は次のとおりです。
20200109
20200111
20200121
20200123
20200223
20200309
20200429
20200511
20200529
20200613
20200619
20200703
20200711
20200721
20200723
20200729
20200801
20200813
20200903
20201021
20201029
20201101
20201113
20201227
20201231
ついでにコードを書いておきます。
素数の判定
def is_prime(n):
#素数ならばTrue
if n<=1:
return False
if n==2:
return True
if n%2==0:
return False
sqrt=int(n**0.5+1)
for x in range(3,sqrt,2):
if n%x==0:
return False
return True
#素数ならばTrue
if n<=1:
return False
if n==2:
return True
if n%2==0:
return False
sqrt=int(n**0.5+1)
for x in range(3,sqrt,2):
if n%x==0:
return False
return True
年月日の列挙と判定
import datetime
date_from=datetime.date(2020,1,1)
for n in range(0,366):
date_this=date_from+datetime.timedelta(days=n)
yyyymmdd=int(date_this.strftime('%Y%m%d'))
if is_prime(yyyymmdd):
print(yyyymmdd)
date_from=datetime.date(2020,1,1)
for n in range(0,366):
date_this=date_from+datetime.timedelta(days=n)
yyyymmdd=int(date_this.strftime('%Y%m%d'))
if is_prime(yyyymmdd):
print(yyyymmdd)
コメント