aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Berlin <xkr47@outerspace.dyndns.org>2020-02-25 23:41:23 +0200
committerJonas Berlin <xkr47@outerspace.dyndns.org>2020-02-25 23:42:30 +0200
commitbc42f5f33b6146b44c2dfd9bff7c122ff6615d3b (patch)
tree93addc13680673411f636e3db439941b4917f952
parent5734596d7d7d0620a856b03ddd375aca18df1ab2 (diff)
downloadperlweeklychallenge-club-bc42f5f33b6146b44c2dfd9bff7c122ff6615d3b.tar.gz
perlweeklychallenge-club-bc42f5f33b6146b44c2dfd9bff7c122ff6615d3b.tar.bz2
perlweeklychallenge-club-bc42f5f33b6146b44c2dfd9bff7c122ff6615d3b.zip
pwc049 / task 1
-rwxr-xr-xchallenge-049/xkr47/raku/ch-1.raku9
-rw-r--r--challenge-049/xkr47/rust/Cargo.toml12
-rw-r--r--challenge-049/xkr47/rust/ch-1.rs14
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());
+}