2017年12月1日は20171201ということで、素数日です。
今年最後の素数日は12月19日ですが、advent calendar開始日も素数ということなので、素数日botについてです。
標準関数(PHP)で判定する
最初はエラトステネスの篩すら知らなかったので、PHPの標準関数を使って調べたところ、素数日当日わくわくしながら待っていたところ、今日は素数日ではありません
とのつぶやきが...
よくよく調べて見ると 数が"おそらく素数"であるかどうかを調べる
との文言が。
おそらく...つらい。
作った
てことで、PHPでエラトステネスの篩で書き直したのですが、さらにPythonで書き直したものがこちらです。(Python書いて見たかった)
def get_primeflg():
dt = today.strftime('%Y%m%d')
dt = int(dt)
if dt < 2:
return False
else:
for i in range(2,dt):
if i * i > dt:
break
elif dt % i == 0:
return False
return True
課題
やり方調べていた時に任意の範囲から、素数を抜き出すものは結構あったのですが、xが素数であるかどうか、っていうのはあまりなくて困った。
けれど、そもそもそういう場合はエラトステネスの篩で調べるより早い方法があるらしい...(※忘れたのであとでまた調べる)
今つぶやいているのも、00:00には呟かれるが、遅い感じは否めないのどうにかしたい。
— 今日は素数日? (@sosubi_bot) 2017年11月30日
Enjoy PrimeNumberDay :)