素数を求めたり素因数分解するのは競技プログラミングでたまに出てきます 計算量とか詳細をあまり知らなかったので基本的なアルゴリズムについて調べてみました アルゴリズムや数学についてはあまり詳しくないので間違いがあったら指摘してください ランダウの記号\(O(\cdot)\)とか使ってますが理解はゆるふわです ランダウの記号 - Wikipedia まずは基本的なところから始めていきます 以下では正の整数についてだけ考えます 素数 \(1\)とそれ自身でしか割ることができない整数(\(1\)は含まれない) $$ 2, 3, 5, 7, 11, 13, 17, 19, \dots $$ 素因数分解 整数を素因数(約数になる素数)の積で表す $$ 60 = 2^2 \times 3 \times 5 $$ 試し割り(\(\sqrt n\)以下のすべての整数) Trial division - Wi
![素因数分解とかエラトステネスの篩(ふるい)とかのメモ - 唯物是真 @Scaled_Wurm](https://cdn-ak-scissors.b.st-hatena.com/image/square/8b65dc3ba1dde88b365c10b12d42c9aac77ee9f3/height=288;version=1;width=512/http%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fb%2Fb9%2FSieve_of_Eratosthenes_animation.gif)