summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFriedrich Beckmann <friedrich.beckmann@gmx.de>2025-06-01 15:40:22 +0200
committerFriedrich Beckmann <friedrich.beckmann@gmx.de>2025-06-01 15:40:22 +0200
commit1344cc0ac7e088bafff86d49570c13ef3c455fcc (patch)
treef1780077b5027b8c679f752b068e5013d466164c
parent80909cdb533f99fd3823de80fe6255c01eeccc50 (diff)
added prime search function
-rw-r--r--src/main.rs20
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);
}