From 68c4dd93e8d6f86c8bda4c310e236f46d1ae87d4 Mon Sep 17 00:00:00 2001 From: Coin de Gamma Date: Sat, 2 Mar 2024 09:24:16 +0000 Subject: [PATCH] 058 with bugs --- 058/main.rs | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/058/main.rs b/058/main.rs index 601b412..f334aa4 100644 --- a/058/main.rs +++ b/058/main.rs @@ -1,9 +1,11 @@ use std::collections::HashSet; +const UP: usize = 100; + // from../ 027/main.rs -fn er() -> HashSet { +fn er() -> HashSet { let mut nums = Vec::new(); - let size = 600_000_000; + let size = UP; for _n in 0..size+1 { nums.push(true); } let mut p = 1; loop { @@ -22,7 +24,7 @@ fn er() -> HashSet { } let mut res = HashSet::new(); for i in 2..size { - if nums[i] { res.insert(i as u32); } + if nums[i] { res.insert(i); } } return res; } @@ -43,7 +45,7 @@ impl Steps { }; } - fn next(&mut self, n: u32) -> Option { + fn next(&mut self, n: usize) -> Option { if self.k > self.l { self.k = 1; self.s += 1; @@ -72,14 +74,15 @@ impl Steps { fn main() { let mut st = Steps::new(); + println!("er begin"); let ps = er(); - println!("er"); - return; + println!("er end"); + //return; let mut sq = 1; - let mut corner_count = 0; - let mut p_count = 0; - for n in 1..900_000_000 { - if n > sq * sq { + let mut corner_count = 1; + let mut p_count = 1; + for n in 1..UP { + if n >= sq * sq { sq += 1; } match st.next(n) { @@ -89,10 +92,9 @@ fn main() { if is_prime { p_count += 1; } - - let ratio = 100.0 * (p_count as f64) /(corner_count as f64); - println!("{}.{} \t({})\t[{}]", k, is_prime, sq, ratio); - if ratio < 10.0 { + println!("{} {} {} {}", n, sq, corner_count, p_count); + if ((p_count as f64) * 100f64 as f64) / (corner_count as f64) < 60f64 { + println!("!!{}", sq); break; } },