4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AIIT(産業技術大学院大学)Advent Calendar 2017

Day 1

今日が素数日かどうかを判定する

Last updated at Posted at 2017-11-30

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には呟かれるが、遅い感じは否めないのどうにかしたい。

Enjoy PrimeNumberDay :)

4
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?