diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2022-01-23 22:32:52 +0000 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2022-01-23 22:32:52 +0000 |
| commit | 7b2a4c167050e35bc8b823008b854da55dc5c393 (patch) | |
| tree | d37ca123c14445cf9727cbfb286eb4b8c85ae0e9 /challenge-148 | |
| parent | 605e1363299f7cb38b6c8a56b2ed1d9c9a15056f (diff) | |
| download | perlweeklychallenge-club-7b2a4c167050e35bc8b823008b854da55dc5c393.tar.gz perlweeklychallenge-club-7b2a4c167050e35bc8b823008b854da55dc5c393.tar.bz2 perlweeklychallenge-club-7b2a4c167050e35bc8b823008b854da55dc5c393.zip | |
- Added solutions by Mark Senn.
Diffstat (limited to 'challenge-148')
| -rw-r--r-- | challenge-148/mark-senn/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-148/mark-senn/blog1.txt | 1 | ||||
| -rw-r--r-- | challenge-148/mark-senn/raku/ch-1.raku | 42 | ||||
| -rw-r--r-- | challenge-148/mark-senn/raku/ch-2.raku | 33 |
4 files changed, 77 insertions, 0 deletions
diff --git a/challenge-148/mark-senn/blog.txt b/challenge-148/mark-senn/blog.txt new file mode 100644 index 0000000000..d386aead6c --- /dev/null +++ b/challenge-148/mark-senn/blog.txt @@ -0,0 +1 @@ +https://engineering.purdue.edu/~mark/twc-148-1.pdf diff --git a/challenge-148/mark-senn/blog1.txt b/challenge-148/mark-senn/blog1.txt new file mode 100644 index 0000000000..f624dbc163 --- /dev/null +++ b/challenge-148/mark-senn/blog1.txt @@ -0,0 +1 @@ +https://engineering.purdue.edu/~mark/twc-148-2.pdf diff --git a/challenge-148/mark-senn/raku/ch-1.raku b/challenge-148/mark-senn/raku/ch-1.raku new file mode 100644 index 0000000000..6429cdce48 --- /dev/null +++ b/challenge-148/mark-senn/raku/ch-1.raku @@ -0,0 +1,42 @@ +$_ = q:to/END/; + unused + one two three four five + six seven eight nine ten + eleven twelve thirteen fourteen fifteen + sixteen seventeen eighteen nineteen twenty + ? ? ? ? ? + ? ? ? ? thirty + ? ? ? ? ? + ? ? ? ? forty + ? ? ? ? ? + ? ? ? ? fifty + ? ? ? ? ? + ? ? ? ? sixty + ? ? ? ? ? + ? ? ? ? seventy + ? ? ? ? ? + ? ? ? ? eighty + ? ? ? ? ? + ? ? ? ? ninety + ? ? ? ? ? + ? ? ? ? one hundred + END + +# Change all newlines to two spaces. +s:g/\n/ /; + +# Delete spaces at the end of line. +s/\s*$$//; + +# Split on two or more spaces. +my @spelled = .split(/\s\s+/); + +# Fill in 21...29, 31...39, 41...49, ..., 91...99. +for (20, 30, 40 ... 90) -> $i { + for (1 .. 9) -> $j { + @spelled[$i+$j] = @spelled[$i] ~ '-' ~ @spelled[$j]; + } +} + +# Print out numbers with no 'e' in the numbers' names. +(1..100).map({@spelled[$_].contains('e') or .say});2 diff --git a/challenge-148/mark-senn/raku/ch-2.raku b/challenge-148/mark-senn/raku/ch-2.raku new file mode 100644 index 0000000000..6877562c67 --- /dev/null +++ b/challenge-148/mark-senn/raku/ch-2.raku @@ -0,0 +1,33 @@ +# Print first $n Candano triplets. +my $n = 5; + +# From https://engineering.purdue.edu/~mark/twc-148-2.pdf: +# From between equations (15) and (16): +# a = 2 + 3k +# From equation (19): +# b^2 c = (k+1)^2 (8k+5) + +# The first element is not used. +my $square := 0, 1**2, 2**2, 3**3 .. Inf; + +for (0 .. Inf) -> $k { + + # "rhs" is short for "right hand side". + my $rhs = ($k+1)**2 * (8*$k+5); + + for (1 .. Inf) -> $b { + + # If b^2 > $rhs we've gone too far. + ($square[$b] > $rhs) and last; + + # If $rhs is not evenly divisible by b^2 then c will not be an integer. + ($rhs %% $square[$b]) or next; + + # Found one. + my $a = 2 + 3*$k; + my $c = $rhs / $square[$b]; + say "($a,$b,$c)"; + + (--$n) or exit 0; + } +} |
