commit c5fdc7191e8af07f7320c7a7ee7ba274a57de84f parent 0ba651974de503656b89784f1280de9f62ed018b Author: minerva-jupiter <ryouturn@gmail.com> Date: Wed, 1 Apr 2026 10:53:15 +0900 perf(prime): Optimize by checking odd divisors up to square root Diffstat:
| M | src/bin/prime.rs | | | 17 | ++++++++++++----- |
1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/src/bin/prime.rs b/src/bin/prime.rs @@ -45,11 +45,18 @@ async fn main() -> std::io::Result<()> { fn is_prime(n: f64) -> bool { if n.fract() != 0.0 || n < 2.0 { return false; - } - for i in 2..(n as u64) { - if n % i as f64 == 0.0 { - return false; + } else if n == 2.0 { + return true; + } else if n % 2.0 == 0.0 { + return false; + } else { + let mut i = 3.0; + while i * i <= n { + if n % i == 0.0 { + return false; + } + i += 2.0; } + true } - true }