add 27 (WIP)

This commit is contained in:
timeshifter
2025-03-15 16:46:05 +01:00
parent 36cac2538c
commit 03725b334a
2 changed files with 53 additions and 0 deletions
+6
View File
@@ -0,0 +1,6 @@
[package]
name = "euler27"
version = "0.1.0"
edition = "2024"
[dependencies]
+47
View File
@@ -0,0 +1,47 @@
use std::collections::HashMap;
fn main() {
let q = Quadratic { a: 1, b: 41 };
let mut p = Primes::new();
for n in 0..=39 {
let result = q.calculate(n);
dbg!(p.is_prime(n));
println!("{}", result);
}
}
struct Quadratic {
a: isize,
b: isize,
}
impl Quadratic {
fn calculate(&self, n: isize) -> isize {
n.pow(2) + self.a * n + self.b
}
}
struct Primes(HashMap<isize, bool>);
impl Primes {
fn new() -> Self {
let inner = HashMap::new();
Self(inner)
}
fn is_prime(&mut self, number: isize) -> bool {
let value = self.0.get(&number);
if let Some(result) = value {
return *result;
}
let is_prime = Self::test_primality(number);
self.0.insert(number, is_prime);
is_prime
}
fn test_primality(number: isize) -> bool {
let max = (number as f64).sqrt();
}
}