aboutsummaryrefslogtreecommitdiff
path: root/challenge-147/abigail/node
diff options
context:
space:
mode:
authorAbigail <abigail@abigail.freedom.nl>2022-01-15 19:59:11 +0100
committerAbigail <abigail@abigail.freedom.nl>2022-01-15 20:33:53 +0100
commit3675e785bd1ddadcff97eb6725e1466eb1738f7a (patch)
tree74d09917340720aaacb0625289209917455f1cd2 /challenge-147/abigail/node
parent0b93e274674688f3ae6702e168b0e0391c4a5bf5 (diff)
downloadperlweeklychallenge-club-3675e785bd1ddadcff97eb6725e1466eb1738f7a.tar.gz
perlweeklychallenge-club-3675e785bd1ddadcff97eb6725e1466eb1738f7a.tar.bz2
perlweeklychallenge-club-3675e785bd1ddadcff97eb6725e1466eb1738f7a.zip
Week 147: Node.js solutions
Diffstat (limited to 'challenge-147/abigail/node')
-rw-r--r--challenge-147/abigail/node/ch-1.js47
-rw-r--r--challenge-147/abigail/node/ch-2.js29
2 files changed, 76 insertions, 0 deletions
diff --git a/challenge-147/abigail/node/ch-1.js b/challenge-147/abigail/node/ch-1.js
new file mode 100644
index 0000000000..2a6c5c3764
--- /dev/null
+++ b/challenge-147/abigail/node/ch-1.js
@@ -0,0 +1,47 @@
+#!/usr/local/bin/node
+
+//
+// See https://theweeklychallenge.org/blog/perl-weekly-challenge-147
+//
+
+//
+// Run as: node ch-1.js
+//
+
+function is_prime (p) {
+ if (p == 2) {return true}
+ if (p % 2 == 0) {return false}
+ for (let i = 3; i * i <= p; i += 2) {
+ if (p % i == 0) {return false}
+ }
+ return true
+}
+
+let todo = [2, 3, 5, 7]
+let count = 20 - todo . length
+
+todo . forEach (p => process . stdout . write (p . toString () + " "))
+
+let pow = 10
+main: {
+ while (todo . length > 0) {
+ let new_todo = []
+ for (let d = 1; d <= 9; d ++) {
+ for (let i = 0; i < todo . length; i ++) {
+ let candidate = d * pow + todo [i]
+ if (is_prime (candidate)) {
+ new_todo . push (candidate)
+ process . stdout . write (candidate . toString () + " ")
+ count --
+ if (count <= 0) {
+ break main
+ }
+ }
+ }
+ }
+ todo = new_todo
+ pow *= 10
+ }
+}
+
+process . stdout . write ("\n")
diff --git a/challenge-147/abigail/node/ch-2.js b/challenge-147/abigail/node/ch-2.js
new file mode 100644
index 0000000000..e06832ee9b
--- /dev/null
+++ b/challenge-147/abigail/node/ch-2.js
@@ -0,0 +1,29 @@
+#!/usr/local/bin/node
+
+//
+// See https://theweeklychallenge.org/blog/perl-weekly-challenge-147
+//
+
+//
+// Run as: node ch-2.js
+//
+
+let pentagon = {}
+let p = 0
+let n = 0
+
+main: {
+ while (1) {
+ p += n + n + n + 1
+ n ++
+ pentagon [p] = 1
+ for (let seen in pentagon) {
+ seen = +seen
+ if (seen + seen <= p && (p - seen) in pentagon &&
+ (p - seen - seen) in pentagon) {
+ console . log (seen . toString () + " " + (p - seen))
+ break main
+ }
+ }
+ }
+}