research-pi.rs
1.0 kB · rust · 36 lines
1use mrlycore::errors::Result;2use mrlyfig::{ink, save, Board};3use mrlynum::factor::gcd;4use mrlynum::lattice::coprime_pairs;56const N: usize = 100;78fn main() -> Result<()> {9 let mut board = Board::square();10 let frame = board.frame(0.08);11 let step = frame.w / N as f64;12 let lit = step * 0.52;13 let hid = step * 0.24;14 let mut visible = 0u64;15 for a in 1..=N {16 for b in 1..=N {17 let x = frame.x + (a as f64 - 0.5) * step;18 let y = frame.y + frame.h - (b as f64 - 0.5) * step;19 if gcd(a, b) == 1 {20 visible += 1;21 board.rect(x - lit / 2.0, y - lit / 2.0, lit, lit, ink::yellow());22 } else {23 board.rect(24 x - hid / 2.0,25 y - hid / 2.0,26 hid,27 hid,28 ink::fade(ink::dim(), 0.9),29 );30 }31 }32 }33 assert_eq!(visible, coprime_pairs(N));34 save("research-pi", &board)?;35 Ok(())36}