diff options
| author | Abigail <abigail@abigail.freedom.nl> | 2022-01-15 19:59:11 +0100 |
|---|---|---|
| committer | Abigail <abigail@abigail.freedom.nl> | 2022-01-15 20:33:53 +0100 |
| commit | 3675e785bd1ddadcff97eb6725e1466eb1738f7a (patch) | |
| tree | 74d09917340720aaacb0625289209917455f1cd2 /challenge-147/abigail/node | |
| parent | 0b93e274674688f3ae6702e168b0e0391c4a5bf5 (diff) | |
| download | perlweeklychallenge-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.js | 47 | ||||
| -rw-r--r-- | challenge-147/abigail/node/ch-2.js | 29 |
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 + } + } + } +} |
