rl_lang/interpreter/stdlib/math/is_prime.rs
1use crate::interpreter::evaluator::Evaluator;
2
3pub fn std_is_prime(_: &mut Evaluator, x: i64) -> bool {
4 let x = x as u64;
5 if x < 2 {
6 return false;
7 }
8 if x < 4 {
9 return true;
10 }
11 if x.is_multiple_of(2) || x.is_multiple_of(3) {
12 return false;
13 }
14 let mut i = 5;
15 while i * i <= x {
16 if x.is_multiple_of(i) || x.is_multiple_of(i + 2) {
17 return false;
18 }
19 i += 6;
20 }
21 true
22}