aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-149/abigail/README.md30
-rw-r--r--challenge-149/abigail/awk/ch-1.awk47
-rw-r--r--challenge-149/abigail/awk/ch-2.awk41
-rw-r--r--challenge-149/abigail/bash/ch-1.sh49
-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-1.bc68
-rw-r--r--challenge-149/abigail/bc/ch-2.bc67
-rw-r--r--challenge-149/abigail/c/ch-1.c111
-rw-r--r--challenge-149/abigail/c/ch-2.c51
-rw-r--r--challenge-149/abigail/data/a287298.awk22
-rw-r--r--challenge-149/abigail/data/a287298.bas23
-rw-r--r--challenge-149/abigail/data/a287298.bc15
-rw-r--r--challenge-149/abigail/data/a287298.c27
-rw-r--r--challenge-149/abigail/data/a287298.go27
-rw-r--r--challenge-149/abigail/data/a287298.java26
-rw-r--r--challenge-149/abigail/data/a287298.js22
-rw-r--r--challenge-149/abigail/data/a287298.lua22
-rw-r--r--challenge-149/abigail/data/a287298.p28
-rw-r--r--challenge-149/abigail/data/a287298.pl22
-rw-r--r--challenge-149/abigail/data/a287298.py22
-rw-r--r--challenge-149/abigail/data/a287298.r22
-rw-r--r--challenge-149/abigail/data/a287298.rb22
-rw-r--r--challenge-149/abigail/data/a287298.scm25
-rw-r--r--challenge-149/abigail/data/a287298.sh22
-rw-r--r--challenge-149/abigail/data/a287298.tcl25
-rwxr-xr-xchallenge-149/abigail/data/preprocess190
-rw-r--r--challenge-149/abigail/go/ch-1.go69
-rw-r--r--challenge-149/abigail/go/ch-2.go54
-rw-r--r--challenge-149/abigail/java/ch-1.java58
-rw-r--r--challenge-149/abigail/java/ch-2.java49
-rw-r--r--challenge-149/abigail/lua/ch-1.lua49
-rw-r--r--challenge-149/abigail/lua/ch-2.lua41
-rw-r--r--challenge-149/abigail/node/ch-1.js48
-rw-r--r--challenge-149/abigail/node/ch-2.js38
-rw-r--r--challenge-149/abigail/pascal/ch-1.p78
-rw-r--r--challenge-149/abigail/pascal/ch-2.p49
-rw-r--r--challenge-149/abigail/perl/ch-1.pl62
-rw-r--r--challenge-149/abigail/perl/ch-2.pl72
-rw-r--r--challenge-149/abigail/python/ch-1.py45
-rw-r--r--challenge-149/abigail/python/ch-2.py42
-rw-r--r--challenge-149/abigail/r/ch-1.r59
-rw-r--r--challenge-149/abigail/r/ch-2.r47
-rw-r--r--challenge-149/abigail/ruby/ch-1.rb49
-rw-r--r--challenge-149/abigail/ruby/ch-2.rb36
-rw-r--r--challenge-149/abigail/scheme/ch-1.scm43
-rw-r--r--challenge-149/abigail/scheme/ch-2.scm56
-rw-r--r--challenge-149/abigail/t/ctest.ini18
-rw-r--r--challenge-149/abigail/t/input-1-11
-rw-r--r--challenge-149/abigail/t/input-1-23
-rw-r--r--challenge-149/abigail/t/input-2-14
-rw-r--r--challenge-149/abigail/t/input-2-220
-rw-r--r--challenge-149/abigail/t/input-2-33
-rw-r--r--challenge-149/abigail/t/output-1-1.exp1
-rw-r--r--challenge-149/abigail/t/output-1-2.exp3
-rw-r--r--challenge-149/abigail/t/output-2-1.exp4
-rw-r--r--challenge-149/abigail/t/output-2-2.exp20
-rw-r--r--challenge-149/abigail/t/output-2-3.exp3
-rw-r--r--challenge-149/abigail/tcl/ch-1.tcl46
-rw-r--r--challenge-149/abigail/tcl/ch-2.tcl43
60 files changed, 2284 insertions, 29 deletions
diff --git a/challenge-149/abigail/README.md b/challenge-149/abigail/README.md
index 7087e5bc74..c6c703c150 100644
--- a/challenge-149/abigail/README.md
+++ b/challenge-149/abigail/README.md
@@ -4,64 +4,36 @@
* [AWK](awk/ch-1.awk)
* [Bash](bash/ch-1.sh)
-* [Basic](basic/ch-1.bas)
* [Bc](bc/ch-1.bc)
-* [Befunge-93](befunge-93/ch-1.bf93)
* [C](c/ch-1.c)
-* [Cobol](cobol/ch-1.cb)
-* [Csh](csh/ch-1.csh)
-* [Erlang](lua/ch-1.erl)
-* [Forth](lua/ch-1.fs)
-* [Fortran](fortran/ch-1.f90)
* [Go](go/ch-1.go)
* [Java](java/ch-1.java)
* [Lua](lua/ch-1.lua)
-* [m4](m4/ch-1.m4)
-* [MMIX](mmix/ch-1.mms)
* [Node.js](node/ch-1.js)
-* [OCaml](ocaml/ch-1.ml)
* [Pascal](pascal/ch-1.p)
* [Perl](perl/ch-1.pl)
-* [PHP](php/ch-1.php)
-* [PostScript](postscript/ch-1.ps)
* [Python](python/ch-1.py)
* [R](r/ch-1.r)
-* [Rexx](rexx/ch-1.rexx)
* [Ruby](ruby/ch-1.rb)
* [Scheme](scheme/ch-1.scm)
-* [Sed](sed/ch-1.sed)
-* [SQL](sql/ch-1.sql)
* [Tcl](tcl/ch-1.tcl)
+
## Part 2
* [AWK](awk/ch-2.awk)
* [Bash](bash/ch-2.sh)
* [Basic](basic/ch-2.bas)
* [Bc](bc/ch-2.bc)
-* [Befunge-93](befunge-93/ch-2.bf93)
* [C](c/ch-2.c)
-* [Cobol](cobol/ch-2.cb)
-* [Csh](csh/ch-2.csh)
-* [Erlang](lua/ch-2.erl)
-* [Forth](lua/ch-2.fs)
-* [Fortran](fortran/ch-2.f90)
* [Go](go/ch-2.go)
* [Java](java/ch-2.java)
* [Lua](lua/ch-2.lua)
-* [m4](m4/ch-2.m4)
-* [MMIX](mmix/ch-2.mms)
* [Node.js](node/ch-2.js)
-* [OCaml](ocaml/ch-2.ml)
* [Pascal](pascal/ch-2.p)
* [Perl](perl/ch-2.pl)
-* [PHP](php/ch-2.php)
-* [PostScript](postscript/ch-2.ps)
* [Python](python/ch-2.py)
* [R](r/ch-2.r)
-* [Rexx](rexx/ch-2.rexx)
* [Ruby](ruby/ch-2.rb)
* [Scheme](scheme/ch-2.scm)
-* [Sed](sed/ch-2.sed)
-* [SQL](sql/ch-2.sql)
* [Tcl](tcl/ch-2.tcl)
diff --git a/challenge-149/abigail/awk/ch-1.awk b/challenge-149/abigail/awk/ch-1.awk
new file mode 100644
index 0000000000..db6182ff4f
--- /dev/null
+++ b/challenge-149/abigail/awk/ch-1.awk
@@ -0,0 +1,47 @@
+#!/usr/bin/awk
+
+#
+# See https://theweeklychallenge.org/blog/perl-weekly-challenge-149
+#
+
+#
+# Run as: awk -f ch-1.awk < input-file
+#
+
+function digit_sum (number, sum) {
+ sum = 0
+ while (number > 0) {
+ sum += number % 10
+ number = int (number / 10)
+ }
+ return sum
+}
+
+function is_fib (n, t) {
+ while (g < n) {
+ t = g
+ g = f + g
+ f = t
+ fib [g] = 1
+ }
+ return n in fib
+}
+
+BEGIN {
+ f = 0
+ g = 1
+ fib [f] = 1
+ fib [g] = 1
+}
+
+{
+ N = $1
+ for (k = 0; N > 0; k ++) {
+ if (is_fib(digit_sum(k))) {
+ printf ("%d ", k)
+ N --
+ }
+ }
+
+ printf ("\n")
+}
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-1.sh b/challenge-149/abigail/bash/ch-1.sh
new file mode 100644
index 0000000000..bd882f735b
--- /dev/null
+++ b/challenge-149/abigail/bash/ch-1.sh
@@ -0,0 +1,49 @@
+#!/bin/sh
+
+#
+# See https://theweeklychallenge.org/blog/perl-weekly-challenge-149
+#
+
+#
+# Run as: bash ch-1.sh < input-file
+#
+
+function digit_sum () {
+ digit_sum=0
+ num=$1
+ while ((num > 0))
+ do ((digit_sum += num % 10))
+ ((num /= 10))
+ done
+}
+
+f=0
+g=1
+declare -A fib
+fib[$f]=1
+fib[$g]=1
+
+function is_fib () {
+ local n=$1
+ while (($g < $n))
+ do ((t = g))
+ ((g = f + g))
+ ((f = t))
+ fib[$g]=1
+ done
+ is_fib=${fib[$n]:-0}
+}
+
+set -f
+
+while read N
+do for ((k = 0; N > 0; k ++))
+ do digit_sum $k
+ is_fib $digit_sum
+ if (($is_fib == 1))
+ then printf "%d " $k
+ ((N --))
+ fi
+ done
+ echo ""
+done
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-1.bc b/challenge-149/abigail/bc/ch-1.bc
new file mode 100644
index 0000000000..85f46b7a03
--- /dev/null
+++ b/challenge-149/abigail/bc/ch-1.bc
@@ -0,0 +1,68 @@
+#!/usr/bin/bc
+
+#
+# See https://theweeklychallenge.org/blog/perl-weekly-challenge-149
+#
+
+#
+# Run as: bc ch-1.bc < input-file
+#
+
+define digit_sum (n) {
+ auto sum
+ sum = 0
+ while (n > 0) {
+ sum = sum + n % 10
+ n = n / 10
+ }
+ return (sum)
+}
+
+f = 1
+g = 1
+fib [0] = 0
+fib [1] = 1
+fib_count = 2
+
+define is_fib (n) {
+ auto t, min, max
+ while (g < n) {
+ t = g
+ g = f + g
+ f = t
+ fib [fib_count] = g
+ fib_count = fib_count + 1
+ }
+ min = 0
+ max = fib_count
+ while (min < max) {
+ mid = (min + max) / 2
+ if (fib [mid] == n) {
+ return (1)
+ }
+ if (fib [mid] < n) {
+ min = mid + 1
+ } else {
+ max = mid
+ }
+ }
+ return (0)
+}
+
+
+while (1) {
+ n = read ()
+ if (n == 0) {
+ break
+ }
+ for (k = 0; n > 0; k ++) {
+ if (is_fib (digit_sum (k)) == 1) {
+ print k, " "
+ n = n - 1
+ }
+ }
+ print "
+"
+}
+
+halt
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-1.c b/challenge-149/abigail/c/ch-1.c
new file mode 100644
index 0000000000..5acb89bc23
--- /dev/null
+++ b/challenge-149/abigail/c/ch-1.c
@@ -0,0 +1,111 @@
+# include <stdlib.h>
+# include <stdio.h>
+# include <string.h>
+# include <stdbool.h>
+
+/*
+ * See https://theweeklychallenge.org/blog/perl-weekly-challenge-149
+ */
+
+/*
+ * Run as: cc -o ch-1.o ch-1.c; ./ch-1.o < input-file
+ */
+
+# define BASE 10
+int digit_sum (long n) {
+ int out = 0;
+ while (n) {
+ out += n % BASE;
+ n /= BASE;
+ }
+ return (out);
+}
+
+# define DEFAULT_FIB_CAB 100
+# define FIB_CAP_INC_PERC 50
+
+typedef long fib_t;
+
+fib_t fib_prev, fib_last;
+size_t fib_count;
+size_t fib_cap;
+fib_t * fib = NULL;
+
+bool is_fib (fib_t n) {
+ if (fib == NULL) {
+ fib_prev = 1;
+ fib_last = 1;
+ fib_count = 2;
+ fib_cap = DEFAULT_FIB_CAB;
+ if ((fib = (fib_t *) malloc (fib_cap * sizeof (fib_t))) == NULL) {
+ perror ("Malloc failed");
+ exit (1);
+ }
+ fib [0] = 0;
+ fib [1] = 1;
+ }
+
+ /*
+ * If n exceeds the maximum Fibonacci number so far, generate
+ * new numbers until we reach or exceed n. If we generate n,
+ * n is a Fibonacci number; if we exceed n, n is not.
+ */
+ while (fib_last < n) {
+ fib_t t = fib_last;
+ fib_last += fib_prev;
+ fib_prev = t;
+ while (fib_count >= fib_cap) {
+ fib_cap += 1 + FIB_CAP_INC_PERC * fib_cap / 100;
+ if ((fib = (fib_t *)
+ realloc (fib, fib_cap * sizeof (fib_t))) == NULL) {
+ perror ("Ralloc failed");
+ exit (1);
+ }
+ }
+ fib [fib_count ++] = fib_last;
+ if (fib_last == n) {
+ return (true);
+ }
+ if (fib_last > n) {
+ return (false);
+ }
+ }
+
+ /*
+ * If n is less than the maximum Fibonaccie number generated so far,
+ * do a binary search.
+ */
+ size_t min = 0;
+ size_t max = fib_count;
+ while (min < max) {
+ size_t mid = (min + max) / 2;
+ if (fib [mid] == n) {
+ return (true);
+ }
+ if (fib [mid] < n) {
+ min = mid + 1;
+ }
+ else {
+ max = mid;
+ }
+ }
+ return (false);
+}
+
+
+
+int main (void) {
+ int n;
+
+ while (scanf ("%d", &n) == 1) {
+ for (int k = 0; n > 0; k ++) {
+ if (is_fib (digit_sum (k))) {
+ printf ("%d ", k);
+ n --;
+ }
+ }
+ printf ("\n");
+ }
+
+ return (0);
+}
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/data/a287298.awk b/challenge-149/abigail/data/a287298.awk
new file mode 100644
index 0000000000..8ae03ba3aa
--- /dev/null
+++ b/challenge-149/abigail/data/a287298.awk
@@ -0,0 +1,22 @@
+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"
+}
diff --git a/challenge-149/abigail/data/a287298.bas b/challenge-149/abigail/data/a287298.bas
new file mode 100644
index 0000000000..110decb347
--- /dev/null
+++ b/challenge-149/abigail/data/a287298.bas
@@ -0,0 +1,23 @@
+1000 INPUT N
+
+
+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"
+1200 IF N = 22 THEN PRINT "LKJIG5