diff options
| -rwxr-xr-x | challenge-049/xkr47/raku/ch-1.raku | 9 | ||||
| -rw-r--r-- | challenge-049/xkr47/rust/Cargo.toml | 12 | ||||
| -rw-r--r-- | challenge-049/xkr47/rust/ch-1.rs | 14 |
3 files changed, 35 insertions, 0 deletions
diff --git a/challenge-049/xkr47/raku/ch-1.raku b/challenge-049/xkr47/raku/ch-1.raku new file mode 100755 index 0000000000..2bde510305 --- /dev/null +++ b/challenge-049/xkr47/raku/ch-1.raku @@ -0,0 +1,9 @@ +#!/usr/bin/env perl6 + +sub MAIN(Int $multiplier) { + (1 .. ∞) + .map(* * $multiplier) + .grep(/^<[01]>+$/) + .head(1) + .say() +} diff --git a/challenge-049/xkr47/rust/Cargo.toml b/challenge-049/xkr47/rust/Cargo.toml new file mode 100644 index 0000000000..0cc7929d6a --- /dev/null +++ b/challenge-049/xkr47/rust/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "pwc-049" +version = "0.1.0" +authors = ["Jonas Berlin <xkr47@outerspace.dyndns.org>"] +edition = "2018" + +[dependencies] +regex = "1.3.4" + +[[bin]] +name = "ch-1" +path = "ch-1.rs" diff --git a/challenge-049/xkr47/rust/ch-1.rs b/challenge-049/xkr47/rust/ch-1.rs new file mode 100644 index 0000000000..d93fa34148 --- /dev/null +++ b/challenge-049/xkr47/rust/ch-1.rs @@ -0,0 +1,14 @@ +use std::env; +use regex::Regex; + +fn main() { + let multiplier = env::args().skip(1).next().expect("Please give multiplier as argument"); + let multiplier: u64 = multiplier.parse().expect("Bad multiplier specified as argument"); + let ones_and_zeroes = Regex::new(r"^[01]+$").unwrap(); + println!("{}", + (1_u64..) + .map(|num| num * multiplier) + .filter(|num| ones_and_zeroes.is_match(&num.to_string())) + .next() + .unwrap()); +} |
