add 27 (WIP)
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
[package]
|
||||
name = "euler27"
|
||||
version = "0.1.0"
|
||||
edition = "2024"
|
||||
|
||||
[dependencies]
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user