競技プログラミングでは、素数に関わる問題が多くある。
例えば、ab は cdで割り切れるかどうか、という問題。
ただし a,b,c,dはそれぞれ109 まで。
この場合普通にabは計算出来ない(10億の10億乗になってしまうので)。
そういう時はaとcを素因数分解していく必要がある。
まあそういった問題はよくあるので、
よくつかう素数に関する関数をPythonで書いた。
nまでの素数テーブルをつくる
10 7くらいまでは一瞬で作れる。
まとめ
もっと高速化しようと思えばできるけど、
書くコストと複雑さ、消費メモリ的にはこれくらいが実用的だと思う。