Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- fn main() {
- let mut acc: u8 = 0;
- let mut s = *b"00: 0";
- for i in 5..30u8 {
- // Encode decimal number
- s[0] = 0;
- acc = i;
- loop {
- acc = acc.wrapping_sub(10);
- if acc & 0b1000_000 == 0 {
- s[0] += 1;
- } else {
- acc = acc.wrapping_add(10);
- break;
- }
- }
- s[1] = acc;
- s[0] += 0x30;
- s[1] += 0x30;
- s[4] = b'Y';
- 'outer: for d in 2..=i / 2 {
- acc = i;
- loop {
- acc = acc.wrapping_sub(d);
- if acc == 0 {
- // not prime!
- s[4] = b'N';
- break 'outer;
- }
- if acc & 0b1000_000 != 0 {
- // not a divisor (subtraction overflowed)
- break;
- }
- }
- }
- println!("{}", std::str::from_utf8(&s).unwrap());
- }
- }
Add Comment
Please, Sign In to add comment