research-coprime.rs
1.1 kB · rust · 38 lines
1use mrlycore::errors::Result;2use mrlyfig::{ink, save, Board, Grid};3use mrlymath::two::designs;4use mrlynum::classics::gcd;56fn main() -> Result<()> {7 let mut board = Board::square();8 let area = board.frame(0.08);9 let cells = designs::create(495, 3, 4, 0, 3)?;10 let side = cells.width();11 assert_eq!(side, 81);12 let types = cells.types();13 assert_eq!(types.sum(), 4096);14 let grid = Grid::new(area, side, side, 0.10);15 let mut lit = 0usize;16 for row in 0..side {17 for col in 0..side {18 if types.get(&[row, col]) == 0 {19 continue;20 }21 let x = (col + 1) as u128;22 let y = (side - row) as u128;23 let coprime = gcd(x, y) == 1;24 if coprime {25 lit += 1;26 }27 grid.fill(28 &mut board,29 col,30 row,31 if coprime { ink::yellow() } else { ink::dim() },32 );33 }34 }35 assert!(lit > 0 && lit < 4096);36 save("research-coprime", &board)?;37 Ok(())38}