素数判定法
素数判定とは
与えられた整数nが素数かそうでないかを判定するアルゴリズムである。 普通に考えると、2 ~ n-1 でnが割り切れないかを確認すれば良い。しかし、 n = abとすると、min(a, b)は√nを超えない。これより2 ~ √nの間でのみ割り切れないかを考えると十分であり、これはO(√n)の計算量で実行できる。
実装
fn is_prime(n: usize) -> bool { for i in 2..(n + 1) { if i.pow(2) > n { break; } if n % i == 0 { return false; } } return true; }
多分こんな感じ。確認もしてないです。実際に使ったりしたらその時に書き直したやつをコピペします。