diff options
| -rw-r--r-- | challenge-119/luc65r/myrddin/ch-1.myr | 6 | ||||
| -rw-r--r-- | challenge-119/luc65r/myrddin/ch-2.myr | 30 | ||||
| -rwxr-xr-x | challenge-119/luc65r/raku/ch-1.raku | 5 | ||||
| -rwxr-xr-x | challenge-119/luc65r/raku/ch-2.raku | 6 |
4 files changed, 47 insertions, 0 deletions
diff --git a/challenge-119/luc65r/myrddin/ch-1.myr b/challenge-119/luc65r/myrddin/ch-1.myr new file mode 100644 index 0000000000..0b5df84ec8 --- /dev/null +++ b/challenge-119/luc65r/myrddin/ch-1.myr @@ -0,0 +1,6 @@ +use std + +const main = {args : byte[:][:] -> void + var n : uint8 = std.get(std.intparse(args[1])) + std.put("{}\n", n >> 4 | n << 4) +} diff --git a/challenge-119/luc65r/myrddin/ch-2.myr b/challenge-119/luc65r/myrddin/ch-2.myr new file mode 100644 index 0000000000..e0e15338b8 --- /dev/null +++ b/challenge-119/luc65r/myrddin/ch-2.myr @@ -0,0 +1,30 @@ +use std + +const main = {args : byte[:][:] -> void + var a : uint64 = 1 + for var n : uint64 = std.get(std.intparse(args[1])); n > 1; n-- + a = next(a) + ;; + std.put("{}\n", a) +} + +const next = {n : uint64 -> uint64 + n++ + for var a = 1; (n / a) % 10 == 4; + n -= 3 * a + a *= 10 + n += a + ;; + var p = false + for var a = 1; n / a > 0; a *= 10 + if (n / a) % 10 == 1 + if p + -> next(n) + ;; + p = true + else + p = false + ;; + ;; + -> n +} diff --git a/challenge-119/luc65r/raku/ch-1.raku b/challenge-119/luc65r/raku/ch-1.raku new file mode 100755 index 0000000000..e43b938597 --- /dev/null +++ b/challenge-119/luc65r/raku/ch-1.raku @@ -0,0 +1,5 @@ +#!/usr/bin/env raku + +sub MAIN(UInt:D $n where * < 256) { + say $n +> 4 +| $n +< 4 +& 0xf0; +} diff --git a/challenge-119/luc65r/raku/ch-2.raku b/challenge-119/luc65r/raku/ch-2.raku new file mode 100755 index 0000000000..dea0af3a18 --- /dev/null +++ b/challenge-119/luc65r/raku/ch-2.raku @@ -0,0 +1,6 @@ +#!/usr/bin/env raku + +sub MAIN(UInt:D $n where * > 0) { + my @s = grep { ! / 0 | 11 / }, map { .base: 4 }, 1 .. ∞; + say @s[$n - 1]; +} |
