aboutsummaryrefslogtreecommitdiff
path: root/challenge-003/abigail/node/ch-1.js
diff options
context:
space:
mode:
authorAbigail <abigail@abigail.freedom.nl>2022-01-05 20:35:32 +0100
committerAbigail <abigail@abigail.freedom.nl>2022-01-05 20:35:32 +0100
commitada8b466f3fe8efcf3b85f22495c744517df42ca (patch)
tree1dc6439469d465851a7c36e9ebc75c5f99600307 /challenge-003/abigail/node/ch-1.js
parentf98a27d3409f2cfd1fdcf283e9453847520869b9 (diff)
downloadperlweeklychallenge-club-ada8b466f3fe8efcf3b85f22495c744517df42ca.tar.gz
perlweeklychallenge-club-ada8b466f3fe8efcf3b85f22495c744517df42ca.tar.bz2
perlweeklychallenge-club-ada8b466f3fe8efcf3b85f22495c744517df42ca.zip
Week 3: copied solutions from week 123.
Week 123 has exactly the same challenge. Since I prefer that solution, I copied those results. Tests adjusted accordingly.
Diffstat (limited to 'challenge-003/abigail/node/ch-1.js')
-rw-r--r--challenge-003/abigail/node/ch-1.js29
1 files changed, 19 insertions, 10 deletions
diff --git a/challenge-003/abigail/node/ch-1.js b/challenge-003/abigail/node/ch-1.js
index a1ffe969ac..e44318f34c 100644
--- a/challenge-003/abigail/node/ch-1.js
+++ b/challenge-003/abigail/node/ch-1.js
@@ -1,21 +1,30 @@
#!/usr/local/bin/node
//
-// See ../README.md
+// See https://theweeklychallenge.org/blog/perl-weekly-challenge-003
//
//
// Run as: node ch-1.js < input-file
//
-require ('readline')
+let ugly = [1]
+let next_2 = 0
+let next_3 = 0
+let next_5 = 0
+
+ require ('readline')
. createInterface ({input: process . stdin})
-. on ('line', max => {
- for (let base2 = 1; base2 <= max; base2 *= 2) {
- for (let base3 = base2; base3 <= max; base3 *= 3) {
- for (let base5 = base3; base5 <= max; base5 *= 5) {
- console . log (base5)
- }
- }
+. on ('line', n => {
+ n =+ n
+ while (ugly . length < n) {
+ ugly . push (Math . min (2 * ugly [next_2],
+ 3 * ugly [next_3],
+ 5 * ugly [next_5]))
+
+ if (2 * ugly [next_2] <= ugly [ugly . length - 1]) {next_2 ++}
+ if (3 * ugly [next_3] <= ugly [ugly . length - 1]) {next_3 ++}
+ if (5 * ugly [next_5] <= ugly [ugly . length - 1]) {next_5 ++}
}
-});
+ console . log (ugly [n - 1])
+})