aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2022-02-02 16:40:02 +0000
committerGitHub <noreply@github.com>2022-02-02 16:40:02 +0000
commit9707a887ba7bc4c10840325c1a87688101927743 (patch)
tree05e34f2f7830bed1a5d7f6fd65d40b97d1ab5996
parent66d80a6d8aaded923c78b41a17ee8b1834610f06 (diff)
parent4b1074856eb77dbff60e8028aa505cae13ee2d68 (diff)
downloadperlweeklychallenge-club-9707a887ba7bc4c10840325c1a87688101927743.tar.gz
perlweeklychallenge-club-9707a887ba7bc4c10840325c1a87688101927743.tar.bz2
perlweeklychallenge-club-9707a887ba7bc4c10840325c1a87688101927743.zip
Merge pull request #5604 from 0rir/ch-150
raku challenge 150
-rw-r--r--challenge-150/0rir/README2
-rw-r--r--challenge-150/0rir/raku/ch-1.raku46
-rw-r--r--challenge-150/0rir/raku/ch-2.raku19
3 files changed, 67 insertions, 0 deletions
diff --git a/challenge-150/0rir/README b/challenge-150/0rir/README
new file mode 100644
index 0000000000..48ee4684c2
--- /dev/null
+++ b/challenge-150/0rir/README
@@ -0,0 +1,2 @@
+
+Solution by Robert Ransbottom.
diff --git a/challenge-150/0rir/raku/ch-1.raku b/challenge-150/0rir/raku/ch-1.raku
new file mode 100644
index 0000000000..29114e8c2c
--- /dev/null
+++ b/challenge-150/0rir/raku/ch-1.raku
@@ -0,0 +1,46 @@
+#!/usr/bin/env raku
+# vim: ft=raku sw=4 expandtab
+use v6.d;
+use Lingua::EN::Numbers :short;
+
+my $sot = 51;
+my @out;
+my @data =
+ [ '1', '2' ], [ '1234567890', '1234567890' ],
+ [ '12', '34' ], [ '123456789', '012345678' ],
+ [ '123', '456' ], [ '12345678', '90123456' ],
+ [ '1234', '5678' ], [ '1234567', '8901234' ],
+ [ '12345', '67890' ], [ '123456', '789012' ],
+ [ '1234567890' x 2, '1234567890' x 2 ],
+ [ '1234567890' x 3, '1234567890' x 3 ],
+ [ '1234567890' x 6, '1234567890' x 6 ],
+;
+
+my @input = @data.pick;
+my ($a, $b) = @input[0];
+die 'Mismatched input' unless $a.chars == $b.chars;
+@out.push: $a, $b;
+
+my @f-word = $a, $b, {
+ state $x =$a;
+ state $y =$b;
+ my $z= $x ~ $y;
+ ($x,$y)=($y,$z);
+ $z} … ∞;
+
+my $f-word;
+my $words;
+for @f-word {
+ $f-word = $_;
+ $words ~= "'$_'\n";
+ last if .chars ≥ $sot;
+}
+
+@out.push: $f-word.substr( $sot-1, 1), $words, (' ' x 9), ord-d( $sot), $sot;
+@out.push: $f-word,$f-word.substr( $sot -1 ,1) ;
+
+printf qq{Input: \$a = '%s', \$b = '%s'}
+ ~ "\nOutput: %s \n\nFibonacci Words:\n\n%s\n%sThe %s"
+ ~ " digit in the first term having at least %s digits\n"
+ ~ qq{'%s' is %s.\n},
+ |@out;
diff --git a/challenge-150/0rir/raku/ch-2.raku b/challenge-150/0rir/raku/ch-2.raku
new file mode 100644
index 0000000000..d2f21ce280
--- /dev/null
+++ b/challenge-150/0rir/raku/ch-2.raku
@@ -0,0 +1,19 @@
+#!/usr/bin/env raku
+# vim: ft=raku sw=4 expandtabs
+use v6.d;
+
+my %tag = (1 … 500) Z=> ( (False) xx 500);
+
+my @prime = 2, 3, 5, 7, 11, 13, 17, 19, ;
+my @square = @prime»² ;
+
+for 4 … 500 -> $k {
+ for @square -> $f {
+ if $k ÷ $f == Int( $k ÷ $f ) {
+ %tag{$k}:delete;
+ last;
+ }
+ }
+}
+say 'The smallest positive square-free integers are';
+say %tag.keys.sort(&infix:«<=>»).join( ' ,');