aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbigail <abigail@abigail.be>2021-11-01 21:03:55 +0100
committerAbigail <abigail@abigail.be>2021-11-01 21:03:55 +0100
commit6e30de0aa5b931e7cef2cbff5dd53612c35bd993 (patch)
tree93f5e17f8a9edb8b73c3e5e33dfb38b38c0a637f
parent774aa553d53dccf2c51f3ce6da319c45c7b398c1 (diff)
downloadperlweeklychallenge-club-6e30de0aa5b931e7cef2cbff5dd53612c35bd993.tar.gz
perlweeklychallenge-club-6e30de0aa5b931e7cef2cbff5dd53612c35bd993.tar.bz2
perlweeklychallenge-club-6e30de0aa5b931e7cef2cbff5dd53612c35bd993.zip
Node.js solutions for week 137
-rw-r--r--challenge-137/abigail/node/ch-1.js40
-rw-r--r--challenge-137/abigail/node/ch-2.js30
2 files changed, 70 insertions, 0 deletions
diff --git a/challenge-137/abigail/node/ch-1.js b/challenge-137/abigail/node/ch-1.js
new file mode 100644
index 0000000000..a744551341
--- /dev/null
+++ b/challenge-137/abigail/node/ch-1.js
@@ -0,0 +1,40 @@
+#!/usr/local/bin/node
+
+//
+// See ../README.md
+//
+
+//
+// Run as: node ch-1.js
+//
+
+
+let start_years = [1600, 2000]
+let long_year_offsets = [
+ 4, 9, 15, 20, 26,
+ 32, 37, 43, 48, 54,
+ 60, 65, 71, 76, 82,
+ 88, 93, 99,
+ 105, 111, 116, 122,
+ 128, 133, 139, 144, 150,
+ 156, 161, 167, 172, 178,
+ 184, 189, 195,
+ 201, 207, 212, 218,
+ 224, 229, 235, 240, 246,
+ 252, 257, 263, 268, 274,
+ 280, 285, 291, 296,
+ 303, 308, 314,
+ 320, 325, 331, 336, 342,
+ 348, 353, 359, 364, 370,
+ 376, 381, 387, 392, 398
+]
+
+
+start_years . forEach (start_year => {
+ long_year_offsets . forEach (offset => {
+ let year = start_year + offset
+ if (1900 <= year && year <= 2100) {
+ console . log (year)
+ }
+ })
+})
diff --git a/challenge-137/abigail/node/ch-2.js b/challenge-137/abigail/node/ch-2.js
new file mode 100644
index 0000000000..75eef836c8
--- /dev/null
+++ b/challenge-137/abigail/node/ch-2.js
@@ -0,0 +1,30 @@
+#!/usr/local/bin/node
+
+//
+// See ../README.md
+//
+
+//
+// Run as: node ch-2.js < input-file
+//
+
+function reverse (num) {
+ let rev = 0
+ while (num > 0) {
+ rev *= 10
+ rev += num % 10
+ num = Math . floor (num / 10)
+ }
+ return (rev)
+}
+
+function ly (n) {
+ return n >= 10000000 ? 1
+ : n == reverse (n) ? 0
+ : ly (n + reverse (n))
+}
+
+ require ('readline')
+. createInterface ({input: process . stdin})
+. on ('line', num => console . log (ly (+num)))
+