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