aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2022-01-18 20:20:18 +0000
committerGitHub <noreply@github.com>2022-01-18 20:20:18 +0000
commit8c874c8b3d89270d2ba517819160f72e1c03f798 (patch)
tree52286063d4c51cda46676323ad6c9db52f16a568
parent54f45ef81ba854637d1a8ca6199f0577e56a0859 (diff)
parent78088f1d03f41d0878bde693ca149da783bb0af2 (diff)
downloadperlweeklychallenge-club-8c874c8b3d89270d2ba517819160f72e1c03f798.tar.gz
perlweeklychallenge-club-8c874c8b3d89270d2ba517819160f72e1c03f798.tar.bz2
perlweeklychallenge-club-8c874c8b3d89270d2ba517819160f72e1c03f798.zip
Merge pull request #5541 from polettix/polettix/pwc148
Add polettix's solution to challenge-148
-rw-r--r--challenge-148/polettix/blog.txt1
-rw-r--r--challenge-148/polettix/blog1.txt1
-rwxr-xr-xchallenge-148/polettix/perl/ch-1-alt.pl7
-rwxr-xr-xchallenge-148/polettix/perl/ch-1.pl10
-rwxr-xr-xchallenge-148/polettix/perl/ch-2.pl18
-rw-r--r--challenge-148/polettix/perl/cpanfile1
-rw-r--r--challenge-148/polettix/perl/cpanfile.snapshot13
-rwxr-xr-xchallenge-148/polettix/raku/ch-1.raku5
-rwxr-xr-xchallenge-148/polettix/raku/ch-2.raku15
9 files changed, 71 insertions, 0 deletions
diff --git a/challenge-148/polettix/blog.txt b/challenge-148/polettix/blog.txt
new file mode 100644
index 0000000000..ffb47d6140
--- /dev/null
+++ b/challenge-148/polettix/blog.txt
@@ -0,0 +1 @@
+https://github.polettix.it/ETOOBUSY/2022/01/19/pwc148-eban-numbers/
diff --git a/challenge-148/polettix/blog1.txt b/challenge-148/polettix/blog1.txt
new file mode 100644
index 0000000000..6129e329c1
--- /dev/null
+++ b/challenge-148/polettix/blog1.txt
@@ -0,0 +1 @@
+https://github.polettix.it/ETOOBUSY/2022/01/20/pwc148-cardano-triplets/
diff --git a/challenge-148/polettix/perl/ch-1-alt.pl b/challenge-148/polettix/perl/ch-1-alt.pl
new file mode 100755
index 0000000000..ff5acd1d38
--- /dev/null
+++ b/challenge-148/polettix/perl/ch-1-alt.pl
@@ -0,0 +1,7 @@
+#!/usr/bin/env perl
+use v5.24;
+use warnings;
+use experimental 'signatures';
+no warnings 'experimental::signatures';
+sub is_eban ($n) { $n !~ m{ [1789] | (?:2\d\z) | (?:[35](?:\d\d)?\z) }mxs }
+is_eban($_) && say for 1 .. shift // 100;
diff --git a/challenge-148/polettix/perl/ch-1.pl b/challenge-148/polettix/perl/ch-1.pl
new file mode 100755
index 0000000000..5da3c11ca5
--- /dev/null
+++ b/challenge-148/polettix/perl/ch-1.pl
@@ -0,0 +1,10 @@
+#!/usr/bin/env perl
+use v5.24;
+use warnings;
+use experimental 'signatures';
+no warnings 'experimental::signatures';
+use FindBin '$Bin';
+use lib "$Bin/local/lib/perl5";
+use Lingua::EN::Numbers 'num2en';
+map { say } ebans_upto(shift // 100);
+sub ebans_upto ($max) { grep {num2en($_) !~ /e/i } 1 .. $max };
diff --git a/challenge-148/polettix/perl/ch-2.pl b/challenge-148/polettix/perl/ch-2.pl
new file mode 100755
index 0000000000..778bc96c24
--- /dev/null
+++ b/challenge-148/polettix/perl/ch-2.pl
@@ -0,0 +1,18 @@
+#!/usr/bin/env perl
+use v5.24;
+use warnings;
+use experimental 'signatures';
+no warnings 'experimental::signatures';
+
+my $n = shift // 5;
+for my $b (1 .. $n) {
+ my $a = 3 * $b - 1;
+ my $c = 8 * $b - 3;
+
+ my $sqrt = $b * sqrt($c);
+ my $first = ($a + $sqrt) ** (1/3);
+ my $second = ($sqrt - $a) ** (1/3);
+ my $result = $first - $second;
+
+ say "($a, $b, $c) -> $result";
+}
diff --git a/challenge-148/polettix/perl/cpanfile b/challenge-148/polettix/perl/cpanfile
new file mode 100644
index 0000000000..5df11a75da
--- /dev/null
+++ b/challenge-148/polettix/perl/cpanfile
@@ -0,0 +1 @@
+requires 'Lingua::EN::Numbers';
diff --git a/challenge-148/polettix/perl/cpanfile.snapshot b/challenge-148/polettix/perl/cpanfile.snapshot
new file mode 100644
index 0000000000..e73d22a84f
--- /dev/null
+++ b/challenge-148/polettix/perl/cpanfile.snapshot
@@ -0,0 +1,13 @@
+# carton snapshot format: version 1.0
+DISTRIBUTIONS
+ Lingua-EN-Numbers-2.03
+ pathname: N/NE/NEILB/Lingua-EN-Numbers-2.03.tar.gz
+ provides:
+ Lingua::EN::Numbers 2.03
+ requirements:
+ Exporter 0
+ ExtUtils::MakeMaker 6.3
+ perl 5.006
+ strict 0
+ vars 0
+ warnings 0
diff --git a/challenge-148/polettix/raku/ch-1.raku b/challenge-148/polettix/raku/ch-1.raku
new file mode 100755
index 0000000000..4681753c1c
--- /dev/null
+++ b/challenge-148/polettix/raku/ch-1.raku
@@ -0,0 +1,5 @@
+#!/usr/bin/env raku
+use v6;
+use Lingua::EN::Numbers;
+sub MAIN (Int:D $max = 100) { ebans-upto($max)ยป.put }
+sub ebans-upto (Int:D $max) { (^$max).grep({cardinal($_) !~~ /:i e/}) }
diff --git a/challenge-148/polettix/raku/ch-2.raku b/challenge-148/polettix/raku/ch-2.raku
new file mode 100755
index 0000000000..d403e93988
--- /dev/null
+++ b/challenge-148/polettix/raku/ch-2.raku
@@ -0,0 +1,15 @@
+#!/usr/bin/env raku
+use v6;
+sub MAIN (Int:D $n = 5) {
+ for 1 .. $n -> $b {
+ my $a = 3 * $b - 1;
+ my $c = 8 * $b - 3;
+
+ my $sqrt = $b * $c.sqrt;
+ my $first = ($a + $sqrt) ** (1 / 3);
+ my $second = ($sqrt - $a) ** (1 / 3);
+ my $result = $first - $second;
+
+ "($a, $b, $c) -> $result".put;
+ }
+}