diff options
author | Friedrich Beckmann <friedrich.beckmann@gmx.de> | 2025-06-01 15:40:22 +0200 |
---|---|---|
committer | Friedrich Beckmann <friedrich.beckmann@gmx.de> | 2025-06-01 15:40:22 +0200 |
commit | 1344cc0ac7e088bafff86d49570c13ef3c455fcc (patch) | |
tree | f1780077b5027b8c679f752b068e5013d466164c | |
parent | 80909cdb533f99fd3823de80fe6255c01eeccc50 (diff) |
added prime search function
-rw-r--r-- | src/main.rs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs index 135a081..c027b11 100644 --- a/src/main.rs +++ b/src/main.rs @@ -31,6 +31,23 @@ use rp_pico::hal::pac; // higher-level drivers. use rp_pico::hal; +fn is_prime (a : u64) -> bool { + if a % 2 == 0 {return false}; + for i in (3..a.isqrt()).step_by(2) { + if a % i == 0 { + return false; + } + } + return true; +} + +fn find_next_smaller_prime(mut x : u64) -> u64 { + if x <= 1 {return x}; + if x % 2 == 0 {x=x-1}; + while !is_prime(x) {x = x - 2}; + return x; +} + /// Entry point to our bare-metal application. /// /// The `#[entry]` macro ensures the Cortex-M start-up code calls this function @@ -84,6 +101,9 @@ fn main() -> ! { loop { led_pin.set_high().unwrap(); delay.delay_ms(500); + if find_next_smaller_prime(1<<36) > 5 { + led_pin.set_high().unwrap(); + } led_pin.set_low().unwrap(); delay.delay_ms(500); } |