From 78088f1d03f41d0878bde693ca149da783bb0af2 Mon Sep 17 00:00:00 2001 From: Flavio Poletti Date: Tue, 18 Jan 2022 20:56:02 +0100 Subject: Add polettix's solution to challenge-148 --- challenge-148/polettix/blog.txt | 1 + challenge-148/polettix/blog1.txt | 1 + challenge-148/polettix/perl/ch-1-alt.pl | 7 +++++++ challenge-148/polettix/perl/ch-1.pl | 10 ++++++++++ challenge-148/polettix/perl/ch-2.pl | 18 ++++++++++++++++++ challenge-148/polettix/perl/cpanfile | 1 + challenge-148/polettix/perl/cpanfile.snapshot | 13 +++++++++++++ challenge-148/polettix/raku/ch-1.raku | 5 +++++ challenge-148/polettix/raku/ch-2.raku | 15 +++++++++++++++ 9 files changed, 71 insertions(+) create mode 100644 challenge-148/polettix/blog.txt create mode 100644 challenge-148/polettix/blog1.txt create mode 100755 challenge-148/polettix/perl/ch-1-alt.pl create mode 100755 challenge-148/polettix/perl/ch-1.pl create mode 100755 challenge-148/polettix/perl/ch-2.pl create mode 100644 challenge-148/polettix/perl/cpanfile create mode 100644 challenge-148/polettix/perl/cpanfile.snapshot create mode 100755 challenge-148/polettix/raku/ch-1.raku create mode 100755 challenge-148/polettix/raku/ch-2.raku 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; + } +} -- cgit