aboutsummaryrefslogtreecommitdiff
path: root/challenge-149
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-149')
-rw-r--r--challenge-149/abigail/awk/ch-2.awk41
-rw-r--r--challenge-149/abigail/bash/ch-2.sh38
-rw-r--r--challenge-149/abigail/basic/ch-2.bas36
-rw-r--r--challenge-149/abigail/bc/ch-2.bc67
-rw-r--r--challenge-149/abigail/c/ch-2.c51
-rw-r--r--challenge-149/abigail/go/ch-2.go54
-rw-r--r--challenge-149/abigail/java/ch-2.java49
-rw-r--r--challenge-149/abigail/lua/ch-2.lua41
-rw-r--r--challenge-149/abigail/node/ch-2.js38
-rw-r--r--challenge-149/abigail/pascal/ch-2.p49
-rw-r--r--challenge-149/abigail/perl/ch-2.pl72
-rw-r--r--challenge-149/abigail/python/ch-2.py42
-rw-r--r--challenge-149/abigail/r/ch-2.r47
-rw-r--r--challenge-149/abigail/ruby/ch-2.rb36
-rw-r--r--challenge-149/abigail/scheme/ch-2.scm56
-rw-r--r--challenge-149/abigail/tcl/ch-2.tcl43
16 files changed, 760 insertions, 0 deletions
diff --git a/challenge-149/abigail/awk/ch-2.awk b/challenge-149/abigail/awk/ch-2.awk
new file mode 100644
index 0000000000..1b8416f19b
--- /dev/null
+++ b/challenge-149/abigail/awk/ch-2.awk
@@ -0,0 +1,41 @@
+#!/usr/bin/awk
+
+#
+# See https://theweeklychallenge.org/blog/perl-weekly-challenge-149
+#
+
+#
+# Run as: awk -f ch-2.awk < input-file
+#
+
+BEGIN {
+ A287298 [ 2] = "1"
+ A287298 [ 3] = "1"
+ A287298 [ 4] = "3201"
+ A287298 [ 5] = "4301"
+ A287298 [ 6] = "452013"
+ A287298 [ 7] = "6250341"
+ A287298 [ 8] = "47302651"
+ A287298 [ 9] = "823146570"
+ A287298 [10] = "9814072356"
+ A287298 [11] = "A8701245369"
+ A287298 [12] = "B8750A649321"
+ A287298 [13] = "CBA504216873"
+ A287298 [14] = "DC71B30685A924"
+ A287298 [15] = "EDAC93B24658701"
+ A287298 [16] = "FED5B39A42706C81"
+ A287298 [17] = "GFED5A31C6B79802"
+ A287298 [18] = "HGF80ADC53712EB649"
+ A287298 [19] = "IHGFD3408C6E715A2B9"
+ A287298 [20] = "JIHG03DAC457BFE96281"
+ A287298 [22] = "LKJIG5D14B9032FHAC867E"
+}
+
+{
+ if ($1 in A287298) {
+ print A287298 [$1]
+ }
+ else {
+ print "Too hard to calculate"
+ }
+}
diff --git a/challenge-149/abigail/bash/ch-2.sh b/challenge-149/abigail/bash/ch-2.sh
new file mode 100644
index 0000000000..ba798b6707
--- /dev/null
+++ b/challenge-149/abigail/bash/ch-2.sh
@@ -0,0 +1,38 @@
+#!/bin/sh
+
+#
+# See https://theweeklychallenge.org/blog/perl-weekly-challenge-149
+#
+
+#
+# Run as: bash ch-2.sh < input-file
+#
+
+set -f
+
+declare -a A287298
+
+A287298[2]=1
+A287298[3]=1
+A287298[4]=3201
+A287298[5]=4301
+A287298[6]=452013
+A287298[7]=6250341
+A287298[8]=47302651
+A287298[9]=823146570
+A287298[10]=9814072356
+A287298[11]=A8701245369
+A287298[12]=B8750A649321
+A287298[13]=CBA504216873
+A287298[14]=DC71B30685A924
+A287298[15]=EDAC93B24658701
+A287298[16]=FED5B39A42706C81
+A287298[17]=GFED5A31C6B79802
+A287298[18]=HGF80ADC53712EB649
+A287298[19]=IHGFD3408C6E715A2B9
+A287298[20]=JIHG03DAC457BFE96281
+A287298[22]=LKJIG5D14B9032FHAC867E
+
+while read n
+do echo ${A287298[$n]:-"Too hard to calculate"}
+done
diff --git a/challenge-149/abigail/basic/ch-2.bas b/challenge-149/abigail/basic/ch-2.bas
new file mode 100644
index 0000000000..837319f2fc
--- /dev/null
+++ b/challenge-149/abigail/basic/ch-2.bas
@@ -0,0 +1,36 @@
+0010 REM
+0020 REM See https://theweeklychallenge.org/blog/perl-weekly-challenge-149
+0030 REM
+
+0040 REM
+0050 REM Run as: basic ch-2.bas < input-file
+0060 REM
+
+1000 INPUT N
+1005 IF N < 0 THEN END
+
+
+1010 IF N = 2 THEN PRINT "1"
+1020 IF N = 3 THEN PRINT "1"
+1030 IF N = 4 THEN PRINT "3201"
+1040 IF N = 5 THEN PRINT "4301"
+1050 IF N = 6 THEN PRINT "452013"
+1060 IF N = 7 THEN PRINT "6250341"
+1070 IF N = 8 THEN PRINT "47302651"
+1080 IF N = 9 THEN PRINT "823146570"
+1090 IF N = 10 THEN PRINT "9814072356"
+1100 IF N = 11 THEN PRINT "A8701245369"
+1110 IF N = 12 THEN PRINT "B8750A649321"
+1120 IF N = 13 THEN PRINT "CBA504216873"
+1130 IF N = 14 THEN PRINT "DC71B30685A924"
+1140 IF N = 15 THEN PRINT "EDAC93B24658701"
+1150 IF N = 16 THEN PRINT "FED5B39A42706C81"
+1160 IF N = 17 THEN PRINT "GFED5A31C6B79802"
+1170 IF N = 18 THEN PRINT "HGF80ADC53712EB649"
+1180 IF N = 19 THEN PRINT "IHGFD3408C6E715A2B9"
+1190 IF N = 20 THEN PRINT "JIHG03DAC457BFE96281"
+1195 IF N = 21 THEN PRINT "Too hard to calculate"
+1200 IF N = 22 THEN PRINT "LKJIG5D14B9032FHAC867E"
+1210 IF N > 22 THEN PRINT "Too hard to calculate"
+
+5000 GOTO 1000
diff --git a/challenge-149/abigail/bc/ch-2.bc b/challenge-149/abigail/bc/ch-2.bc
new file mode 100644
index 0000000000..e4a9d9a2aa
--- /dev/null
+++ b/challenge-149/abigail/bc/ch-2.bc
@@ -0,0 +1,67 @@
+#!/usr/bin/bc
+
+#
+# See https://theweeklychallenge.org/blog/perl-weekly-challenge-149
+#
+
+#
+# Run as: bc ch-2.bc < input-file
+#
+
+a287298 [ 2] = 1
+a287298 [ 3] = 1
+a287298 [ 4] = 225
+a287298 [ 5] = 576
+a287298 [ 6] = 38025
+a287298 [ 7] = 751689
+a287298 [ 8] = 10323369
+a287298 [ 9] = 355624164
+a287298 [10] = 9814072356
+a287298 [11] = 279740499025
+a287298 [12] = 8706730814089
+a287298 [13] = 23132511879129
+a287298 [14] = 11027486960232964
+a287298 [15] = 435408094460869201
+a287298 [16] = 18362780530794065025
+
+while (1) {
+ n = read ()
+ if (n == 0) {
+ break
+ }
+ done = 0
+ if (n <= 16) {
+ obase=n
+ a287298 [n]
+ done = 1
+ }
+ if (n == 17) {
+ "GFED5A31C6B79802"
+ done = 1
+ }
+ if (n == 18) {
+ "HGF80ADC53712EB649"
+ done = 1
+ }
+ if (n == 19) {
+ "IHGFD3408C6E715A2B9"
+ done = 1
+ }
+ if (n == 20) {
+ "JIHG03DAC457BFE96281"
+ done = 1
+ }
+ if (n == 22) {
+ "LKJIG5D14B9032FHAC867E"
+ done = 1
+ }
+ if (done == 0) {
+ "Too hard to calculate"
+ }
+ if (n > 16) {
+ "
+"
+ }
+}
+
+halt
diff --git a/challenge-149/abigail/c/ch-2.c b/challenge-149/abigail/c/ch-2.c
new file mode 100644
index 0000000000..6f9c25796d
--- /dev/null
+++ b/challenge-149/abigail/c/ch-2.c
@@ -0,0 +1,51 @@
+# include <stdlib.h>
+# include <stdio.h>
+# include <string.h>
+
+/*
+ * See https://theweeklychallenge.org/blog/perl-weekly-challenge-149
+ */
+
+/*
+ * Run as: cc -o ch-2.o ch-2.c; ./ch-2.o < input-file
+ */
+
+int main (void) {
+ char * A287298 [23];
+ int n;
+
+ A287298 [ 0] = NULL;
+ A287298 [ 1] = NULL;
+ A287298 [ 2] = "1";
+ A287298 [ 3] = "1";
+ A287298 [ 4] = "3201";
+ A287298 [ 5] = "4301";
+ A287298 [ 6] = "452013";
+ A287298 [ 7] = "6250341";
+ A287298 [ 8] = "47302651";
+ A287298 [ 9] = "823146570";
+ A287298 [10] = "9814072356";
+ A287298 [11] = "A8701245369";
+ A287298 [12] = "B8750A649321";
+ A287298 [13] = "CBA504216873";
+ A287298 [14] = "DC71B30685A924";
+ A287298 [15] = "EDAC93B24658701";
+ A287298 [16] = "FED5B39A42706C81";
+ A287298 [17] = "GFED5A31C6B79802";
+ A287298 [18] = "HGF80ADC53712EB649";
+ A287298 [19] = "IHGFD3408C6E715A2B9";
+ A287298 [20] = "JIHG03DAC457BFE96281";
+ A287298 [21] = NULL;
+ A287298 [22] = "LKJIG5D14B9032FHAC867E";
+
+ while (scanf ("%d", &n) == 1) {
+ if (n > 22 || A287298 [n] == NULL) {
+ printf ("Too hard to calculate\n");
+ }
+ else {
+ printf ("%s\n", A287298 [n]);
+ }
+ }
+
+ return (0);
+}
diff --git a/challenge-149/abigail/go/ch-2.go b/challenge-149/abigail/go/ch-2.go
new file mode 100644
index 0000000000..b13f0eb72c
--- /dev/null
+++ b/challenge-149/abigail/go/ch-2.go
@@ -0,0 +1,54 @@
+package main
+
+//
+// See https://theweeklychallenge.org/blog/perl-weekly-challenge-149
+//
+
+//
+// Run as: go run ch-2.go < input-file
+//
+
+import (
+ "fmt"
+)
+
+func main () {
+ var A287298 [23] string
+
+ A287298 [ 0] = ""
+ A287298 [ 1] = ""
+ A287298 [ 2] = "1"
+ A287298 [ 3] = "1"
+ A287298 [ 4] = "3201"
+ A287298 [ 5] = "4301"
+ A287298 [ 6] = "452013"
+ A287298 [ 7] = "6250341"
+ A287298 [ 8] = "47302651"
+ A287298 [ 9] = "823146570"
+ A287298 [10] = "9814072356"
+ A287298 [11] = "A8701245369"
+ A287298 [12] = "B8750A649321"
+ A287298 [13] = "CBA504216873"
+ A287298 [14] = "DC71B30685A924"
+ A287298 [15] = "EDAC93B24658701"
+ A287298 [16] = "FED5B39A42706C81"
+ A287298 [17] = "GFED5A31C6B79802"
+ A287298 [18] = "HGF80ADC53712EB649"
+ A287298 [19] = "IHGFD3408C6E715A2B9"
+ A287298 [20] = "JIHG03DAC457BFE96281"
+ A287298 [21] = ""
+ A287298 [22] = "LKJIG5D14B9032FHAC867E"
+
+ for {
+ var n int
+ c, err := fmt . Scanf ("%d", &n)
+ if c != 1 || err != nil {
+ break
+ }
+ if (n > 22 || len (A287298 [n]) == 0) {
+ fmt . Print ("Too hard to calculate\n")
+ } else {
+ fmt . Printf ("%s\n", A287298 [n])
+ }
+ }
+}
diff --git a/challenge-149/abigail/java/ch-2.java b/challenge-149/abigail/java/ch-2.java
new file mode 100644
index 0000000000..46cdcd7432
--- /dev/null
+++ b/challenge-149/abigail/java/ch-2.java
@@ -0,0 +1,49 @@
+//
+// See https://theweeklychallenge.org/blog/perl-weekly-challenge-149
+//
+
+//
+// Run as: ln ch-2.java ch2.java; javac ch2.java; java ch2 < input-file
+//
+
+import java.util.*;
+
+public class ch2 {
+ public static void main (String [] args) {
+ String [] A287298 = new String [23];
+ A287298 [ 0] = "";
+ A287298 [ 1] = "";
+ A287298 [ 2] = "1";
+ A287298 [ 3] = "1";
+ A287298 [ 4] = "3201";
+ A287298 [ 5] = "4301";
+ A287298 [ 6] = "452013";
+ A287298 [ 7] = "6250341";
+ A287298 [ 8] = "47302651";
+ A287298 [ 9] = "823146570";
+ A287298 [10] = "9814072356";
+ A287298 [11] = "A8701245369";
+ A287298 [12] = "B8750A649321";
+ A287298 [13] = "CBA504216873";
+ A287298 [14] = "DC71B30685A924";
+ A287298 [15] = "EDAC93B24658701";
+ A287298 [16] = "FED5B39A42706C81";
+ A287298 [17] = "GFED5A31C6B79802";
+ A287298 [18] = "HGF80ADC53712EB649";
+ A287298 [19] = "IHGFD3408C6E715A2B9";
+ A287298 [20] = "JIHG03DAC457BFE96281";
+ A287298 [21] = "";
+ A287298 [22] = "LKJIG5D14B9032FHAC867E";
+
+ Scanner scanner = new Scanner (System . in);
+ while (scanner . hasNextInt ()) {
+ int n = scanner . nextInt ();
+ if (n > 22 || A287298 [n] . length () == 0) {
+ System . out . println ("Too hard to calculate");
+ }
+ else {
+ System . out . printf ("%s\n", A287298 [n]);
+ }
+ }
+ }
+}
diff --git a/challenge-149/abigail/lua/ch-2.lua b/challenge-149/abigail/lua/ch-2.lua
new file mode 100644
index 0000000000..d4bc1d556f
--- /dev/null
+++ b/challenge-149/abigail/lua/ch-2.lua
@@ -0,0 +1,41 @@
+#!/opt/local/bin/lua
+
+--
+-- See https://theweeklychallenge.org/blog/perl-weekly-challenge-149
+--
+
+--
+-- Run as: lua ch-2.lua < input-file
+--
+
+A287298 = {}
+
+A287298 [ 2] = "1"
+A287298 [ 3] = "1"
+A287298 [ 4] = "3201"
+A287298 [ 5] = "4301"
+A287298 [ 6] = "452013"
+A287298 [ 7] = "6250341"
+A287298 [ 8] = "47302651"
+A287298 [ 9] = "823146570"
+A287298 [10] = "9814072356"
+A287298 [11] = "A8701245369"
+A287298 [12] = "B8750A649321"
+A287298 [13] = "CBA504216873"
+A287298 [14] = "DC71B30685A924"
+A287298 [15] = "EDAC93B24658701"
+A287298 [16] = "FED5B39A42706C81"
+A287298 [17] = "GFED5A31C6B79802"
+A287298 [18] = "HGF80ADC53712EB649"
+A287298 [19] = "IHGFD3408C6E715A2B9"
+A287298 [20] = "JIHG03DAC457BFE96281"
+A287298 [22] = "LKJIG5D14B9032FHAC867E"
+
+for n in io . lines () do
+ n = tonumber (n)
+ if A287298 [n] == nil then
+ print "Too hard to calculate"
+ else
+ print (A287298 [n])
+ end
+end
diff --git a/challenge-149/abigail/node/ch-2.js b/challenge-149/abigail/node/ch-2.js
new file mode 100644
index 0000000000..464ebf74ee
--- /dev/null
+++ b/challenge-149/abigail/node/ch-2.js
@@ -0,0 +1,38 @@
+#!/usr/local/bin/node
+
+//
+// See https://theweeklychallenge.org/blog/perl-weekly-challenge-149
+//
+
+//
+// Run as: node ch-2.js < input-file
+//
+
+let A287298 = []
+
+A287298 [ 2] = "1"
+A287298 [ 3] = "1"
+A287298 [ 4] = "3201"
+A287298 [ 5] = "4301"
+A287298 [ 6] = "452013"
+A287298 [ 7] = "6250341"
+A287298 [ 8] = "47302651"
+A287298 [ 9] = "823146570"
+A287298 [10] = "9814072356"
+A287298 [11] = "A8701245369"
+A287298 [12] = "B8750A649321"
+A287298 [13] = "CBA504216873"
+A287298 [14] = "DC71B30685A924"
+A287298 [15] = "EDAC93B24658701"
+A287298 [16] = "FED5B39A42706C81"
+A287298 [17] = "GFED5A31C6B79802"
+A287298 [18] = "HGF80ADC53712EB649"
+A287298 [19] = "IHGFD3408C6E715A2B9"
+A287298 [20] = "JIHG03DAC457BFE96281"
+A287298 [22] = "LKJIG5D14B9032FHAC867E"
+
+ require ('readline')
+. createInterface ({input: process . stdin})
+. on ('line', n => {
+ console . log (A287298 [n] || "Too hard to calculate")
+})
diff --git a/challenge-149/abigail/pascal/ch-2.p b/challenge-149/abigail/pascal/ch-2.p
new file mode 100644
index 0000000000..ae7df583aa
--- /dev/null
+++ b/challenge-149/abigail/pascal/ch-2.p
@@ -0,0 +1,49 @@
+Program ch2;
+
+(* *)
+(* See https://theweeklychallenge.org/blog/perl-weekly-challenge-149 *)
+(* *)
+
+(* *)
+(* Run as: fpc -och-2.out ch-2.p; ./ch-2.out < input-file *)
+(* *)
+
+var
+ A287298: array [0 .. 22] of string;
+ n: integer;
+
+begin
+ A287298 [ 0] := '';
+ A287298 [ 1] := '';
+ A287298 [ 2] := '1';
+ A287298 [ 3] := '1';
+ A287298 [ 4] := '3201';
+ A287298 [ 5] := '4301';
+ A287298 [ 6] := '452013';
+ A287298 [ 7] := '6250341';
+ A287298 [ 8] := '47302651';
+ A287298 [ 9] := '823146570';
+ A287298 [10] := '9814072356';
+ A287298 [11] := 'A8701245369';
+ A287298 [12] := 'B8750A649321';
+ A287298 [13] := 'CBA504216873';
+ A287298 [14] := 'DC71B30685A924';
+ A287298 [15] := 'EDAC93B24658701';
+ A287298 [16] := 'FED5B39A42706C81';
+ A287298 [17] := 'GFED5A31C6B79802';
+ A287298 [18] := 'HGF80ADC53712EB649';
+ A287298 [19] := 'IHGFD3408C6E715A2B9';
+ A287298 [20] := 'JIHG03DAC457BFE96281';
+ A287298 [21] := '';
+ A287298 [22] := 'LKJIG5D14B9032FHAC867E';
+
+ while not eof do begin
+ readln (n);
+ if (n > 22) or (length (A287298 [n]) = 0) then begin
+ writeln ('Too hard to calculate');
+ end
+ else begin
+ writeln (A287298 [n]);
+ end;
+ end;
+end.
diff --git a/challenge-149/abigail/perl/ch-2.pl b/challenge-149/abigail/perl/ch-2.pl
new file mode 100644
index 0000000000..3538416102
--- /dev/null
+++ b/challenge-149/abigail/perl/ch-2.pl
@@ -0,0 +1,72 @@
+#!/opt/perl/bin/perl
+
+use 5.032;
+
+use strict;
+use warnings;
+no warnings 'syntax';
+
+use experimental 'signatures';
+use experimental 'lexical_subs';
+
+#
+# See https://theweeklychallenge.org/blog/perl-weekly-challenge-149
+#
+
+#
+# Run as: perl ch-2.pl < input-file
+#
+
+#
+# This sequence A287298 in the OEIS.
+#
+# It's worrysome that the OEIS only lists entries up to n = 22 (while
+# skipping n = 21).
+#
+# And if we look at the given Python program to generate the entries,
+# we see it's very slow: it starts with the largest number in base b
+# where all the digits are distinct, of which it takes the integer
+# square root. This is m. We then square m, getting m2. If all the digits
+# of m2 are different, we done. Else, we keep decrementing m by 1 and
+# repeat the process till we have an m2 of which all the digits are
+# different.
+#
+# This is *extremely slow* unless n is small.
+#
+# Therefore, we will not repeat this calculation. Instead, we will
+# just use a loopup table, using the values from
+# https://oeis.org/A287298/b287298.txt.
+#
+# This lookup table was created by ../data/preprocess:
+# - We fetch the values from https://oeis.org/A287298/b287298.txt,
+# and inject the value for base = 22
+# - We then use bc to translate the decimal numbers to the
+# appropriate base.
+# - For bases exceeding 16, bc doesn't use letters, but numbers;
+# we use a regexp to fix those.
+#
+
+my @A287298;
+
+$A287298 [ 2] = "1";
+$A287298 [ 3] = "1";
+$A287298 [ 4] = "3201";
+$A287298 [ 5] = "4301";
+$A287298 [ 6] = "452013";
+$A287298 [ 7] = "6250341";
+$A287298 [ 8] = "47302651";
+$A287298 [ 9] = "823146570";
+$A287298 [10] = "9814072356";
+$A287298 [11] = "A8701245369";
+$A287298 [12] = "B8750A649321";
+$A287298 [13] = "CBA504216873";
+$A287298 [14] = "DC71B30685A924";
+$A287298 [15] = "EDAC93B24658701";
+$A287298 [16] = "FED5B39A42706C81";
+$A287298 [17] = "GFED5A31C6B79802";
+$A287298 [18] = "HGF80ADC53712EB649";
+$A287298 [19] = "IHGFD3408C6E715A2B9";
+$A287298 [20] = "JIHG03DAC457BFE96281";
+$A287298 [22] = "LKJIG5D14B9032FHAC867E";
+
+say $A287298 [$_] // "Too hard to calculate" while <>;
diff --git a/challenge-149/abigail/python/ch-2.py b/challenge-149/abigail/python/ch-2.py
new file mode 100644
index 0000000000..68b490cfa4
--- /dev/null
+++ b/challenge-149/abigail/python/ch-2.py
@@ -0,0 +1,42 @@
+#!/usr/local/bin/python3
+
+#
+# See https://theweeklychallenge.org/blog/perl-weekly-challenge-149
+#
+
+#
+# Run as: python ch-2.py < input-file
+#
+
+A287298 = {}
+
+A287298 [ 2] = "1"
+A287298 [ 3] = "1"
+A287298 [ 4] = "3201"
+A287298 [ 5] = "4301"
+A287298 [ 6] = "452013"
+A287298 [ 7] = "6250341"
+A287298 [ 8] = "47302651"
+A287298 [ 9] = "823146570"
+A287298 [10] = "9814072356"
+A287298 [11] = "A8701245369"
+A287298 [12] = "B8750A649321"
+A287298 [13] = "CBA504216873"
+A287298 [14] = "DC71B30685A924"
+A287298 [15] = "EDAC93B24658701"
+A287298 [16] = "FED5B39A42706C81"
+A287298 [17] = "GFED5A31C6B79802"
+A287298 [18] = "HGF80ADC53712EB649"
+A287298 [19] = "IHGFD3408C6E715A2B9"
+A287298 [20] = "JIHG03DAC457BFE96281"
+A287298 [22] = "LKJIG5D14B9032FHAC867E"
+
+
+import fileinput
+
+for n in fileinput . input ():
+ n = int (n)
+ if n in A287298:
+ print (A287298 [n])
+ else:
+ print ("Too hard to calculate")
diff --git a/challenge-149/abigail/r/ch-2.r b/challenge-149/abigail/r/ch-2.r
new file mode 100644
index 0000000000..4d215adb1f
--- /dev/null
+++ b/challenge-149/abigail/r/ch-2.r
@@ -0,0 +1,47 @@
+#!/usr/local/bin/Rscript
+
+#
+# See https://theweeklychallenge.org/blog/perl-weekly-challenge-149
+#
+
+#
+# Run as: Rscript ch-2.r < input-file
+#
+
+A287298 <- c ()
+
+A287298 [[ 2]] <- "1"
+A287298 [[ 3]] <- "1"
+A287298 [[ 4]] <- "3201"
+A287298 [[ 5]] <- "4301"
+A287298 [[ 6]] <- "452013"
+A287298 [[ 7]] <- "6250341"
+A287298 [[ 8]] <- "47302651"
+A287298 [[ 9]] <- "823146570"
+A287298 [[10]] <- "9814072356"
+A287298 [[11]] <- "A8701245369"
+A287298 [[12]] <- "B8750A649321"
+A287298 [[13]] <- "CBA504216873"
+A287298 [[14]] <- "DC71B30685A924"
+A287298 [[15]] <- "EDAC93B24658701"
+A287298 [[16]] <- "FED5B39A42706C81"
+A287298 [[17]] <- "GFED5A31C6B79802"
+A287298 [[18]] <- "HGF80ADC53712EB649"
+A287298 [[19]] <- "IHGFD3408C6E715A2B9"
+A287298 [[20]] <- "JIHG03DAC457BFE96281"
+A287298 [[22]] <- "LKJIG5D14B9032FHAC867E"
+
+stdin <- file ('stdin', 'r')
+repeat {
+ n <- readLines (stdin, n = 1)
+ if (length (n) == 0) {
+ break
+ }
+ n = as.integer (n)
+ if (n > 22 || is.null (A287298 [[n]])) {
+ cat ("Too hard to calculate\n")
+ }
+ else {
+ cat (A287298 [[n]], "\n")
+ }
+}
diff --git a/challenge-149/abigail/ruby/ch-2.rb b/challenge-149/abigail/ruby/ch-2.rb
new file mode 100644
index 0000000000..b35039f880
--- /dev/null
+++ b/challenge-149/abigail/ruby/ch-2.rb
@@ -0,0 +1,36 @@
+#!/usr/bin/ruby
+
+#
+# See https://theweeklychallenge.org/blog/perl-weekly-challenge-149
+#
+
+#
+# Run as: ruby ch-2.rb < input-file
+#
+
+A287298 = []
+
+A287298[ 2] = "1"
+A287298[ 3] = "1"
+A287298[ 4] = "3201"
+A287298[ 5] = "4301"
+A287298[ 6] = "452013"
+A287298[ 7] = "6250341"
+A287298[ 8] = "47302651"
+A287298[ 9] = "823146570"
+A287298[10] = "9814072356"
+A287298[11] = "A8701245369"
+A287298[12] = "B8750A649321"
+A287298[13] = "CBA504216873"
+A287298[14] = "DC71B30685A924"
+A287298[15] = "EDAC93B24658701"
+A287298[16] = "FED5B39A42706C81"
+A287298[17] = "GFED5A31C6B79802"
+A287298[18] = "HGF80ADC53712EB649"
+A287298[19] = "IHGFD3408C6E715A2B9"
+A287298[20] = "JIHG03DAC457BFE96281"
+A287298[22] = "LKJIG5D14B9032FHAC867E"
+
+ARGF . each_line do |n|
+ puts (A287298[n . to_i] || "Too hard to calculate")
+end
diff --git a/challenge-149/abigail/scheme/ch-2.scm b/challenge-149/abigail/scheme/ch-2.scm
new file mode 100644
index 0000000000..34c3ff0e70
--- /dev/null
+++ b/challenge-149/abigail/scheme/ch-2.scm
@@ -0,0 +1,56 @@
+#!/usr/local/bin/guile
+!#
+
+;;;
+;;; See https://theweeklychallenge.org/blog/perl-weekly-challenge-149
+;;;
+
+;;;
+;;; Run as: guile --no-auto-compile ch-2.scm < input-file
+;;;
+
+(use-modules (ice-9 rdelim))
+
+(define A287298 '())
+
+(set! A287298 (append A287298 (list "")))
+(set! A287298 (append A287298 (list "")))
+(set! A287298 (append A287298 (list "1")))
+(set! A287298 (append A287298 (list "1")))
+(set! A287298 (append A287298 (list "3201")))
+(set! A287298 (append A287298 (list "4301")))
+(set! A287298 (append A287298 (list "452013")))
+(set! A287298 (append A287298 (list "6250341")))
+(set! A287298 (append A287298 (list "47302651")))
+(set! A287298 (append A287298 (list "823146570")))
+(set! A287298 (append A287298 (list "9814072356")))
+(set! A287298 (append A287298 (list "A8701245369")))
+(set! A287298 (append A287298 (list "B8750A649321")))
+(set! A287298 (append A287298 (list "CBA504216873")))
+(set! A287298 (append A287298 (list "DC71B30685A924")))
+(set! A287298 (append A287298 (list "EDAC93B24658701")))
+(set! A287298 (append A287298 (list "FED5B39A42706C81")))
+(set! A287298 (append A287298 (list "GFED5A31C6B79802")))
+(set! A287298 (append A287298 (list "HGF80ADC53712EB649")))
+(set! A287298 (append A287298 (list "IHGFD3408C6E715A2B9")))
+(set! A287298 (append A287298 (list "JIHG03DAC457BFE96281")))
+(set! A287298 (append A287298 (list "")))
+(set! A287298 (append A287298 (list "LKJIG5D14B9032FHAC867E")))
+
+(define (main)
+ (define line (read-line))
+ (define n)
+ (if (not (eof-object? line))
+ (begin
+ (set! n (string->number line))
+ (display (cond ((> n 22) "Too hard to calculate")
+ ((string-null? (list-ref A287298 n))
+ "Too hard to calculate")
+ (else (list-ref A287298 n))))
+ (newline)
+ (main)
+ )
+ )
+)
+
+(main)
diff --git a/challenge-149/abigail/tcl/ch-2.tcl b/challenge-149/abigail/tcl/ch-2.tcl
new file mode 100644
index 0000000000..1feaff5c00
--- /dev/null
+++ b/challenge-149/abigail/tcl/ch-2.tcl
@@ -0,0 +1,43 @@
+#!/usr/local/opt/tcl-tk/bin/tclsh
+
+#
+# See https://theweeklychallenge.org/blog/perl-weekly-challenge-149
+#
+
+#
+# Run as: tclsh ch-2.tcl < input-file
+#
+
+set A287298 list
+
+lset A287298 0 ""
+lset A287298 1 ""
+lset A287298 2 "1"
+lset A287298 3 "1"
+lset A287298 4 "3201"
+lset A287298 5 "4301"
+lset A287298 6 "452013"
+lset A287298 7 "6250341"
+lset A287298 8 "47302651"
+lset A287298 9 "823146570"
+lset A287298 10 "9814072356"
+lset A287298 11 "A8701245369"
+lset A287298 12 "B8750A649321"
+lset A287298 13 "CBA504216873"
+lset A287298 14 "DC71B30685A924"
+lset A287298 15 "EDAC93B24658701"
+lset A287298 16 "FED5B39A42706C81"
+lset A287298 17 "GFED5A31C6B79802"
+lset A287298 18 "HGF80ADC53712EB649"
+lset A287298 19 "IHGFD3408C6E715A2B9"
+lset A287298 20 "JIHG03DAC457BFE96281"
+lset A287298 21 ""
+lset A287298 22 "LKJIG5D14B9032FHAC867E"
+
+while {[gets stdin n] >= 0} {
+ if {[string length [lindex $A287298 $n]] > 0} {
+ puts [lindex $A287298 $n]
+ } else {
+ puts "Too hard to calculate"
+ }
+}