aboutsummaryrefslogtreecommitdiff
path: root/challenge-141/abigail/node
diff options
context:
space:
mode:
authorPaulo Custodio <pauloscustodio@gmail.com>2021-12-06 14:55:30 +0000
committerPaulo Custodio <pauloscustodio@gmail.com>2021-12-06 14:55:30 +0000
commitcd04687f29d4ebea2fd5ec165585b21f2951f413 (patch)
tree5c17b623d6b7a8cb803a4464f19d157152143e62 /challenge-141/abigail/node
parentfe57a0405720a40beaeb75100e069aaa13e4c49e (diff)
parentb9773f5c38387d865a093d2ecdfd1b01b4452c34 (diff)
downloadperlweeklychallenge-club-cd04687f29d4ebea2fd5ec165585b21f2951f413.tar.gz
perlweeklychallenge-club-cd04687f29d4ebea2fd5ec165585b21f2951f413.tar.bz2
perlweeklychallenge-club-cd04687f29d4ebea2fd5ec165585b21f2951f413.zip
Merge branch 'master' into devel
Diffstat (limited to 'challenge-141/abigail/node')
-rw-r--r--challenge-141/abigail/node/ch-1.js30
-rw-r--r--challenge-141/abigail/node/ch-2.js32
2 files changed, 62 insertions, 0 deletions
diff --git a/challenge-141/abigail/node/ch-1.js b/challenge-141/abigail/node/ch-1.js
new file mode 100644
index 0000000000..e246fffd08
--- /dev/null
+++ b/challenge-141/abigail/node/ch-1.js
@@ -0,0 +1,30 @@
+#!/usr/local/bin/node
+
+//
+// See ../README.md
+//
+
+//
+// Run as: node ch-1.js
+//
+
+
+let count = 10
+let nr_of_divisors = 8
+
+for (let n = 1; count > 0; n ++) {
+ let s = Math . floor (Math . sqrt (n))
+ if (n == s * s) {
+ continue
+ }
+ let c = 0
+ for (let d = 1; d <= s && c <= nr_of_divisors; d ++) {
+ if (n % d == 0) {
+ c += 2
+ }
+ }
+ if (c == nr_of_divisors) {
+ console . log (n)
+ count --
+ }
+}
diff --git a/challenge-141/abigail/node/ch-2.js b/challenge-141/abigail/node/ch-2.js
new file mode 100644
index 0000000000..53b7b7ac44
--- /dev/null
+++ b/challenge-141/abigail/node/ch-2.js
@@ -0,0 +1,32 @@
+#!/usr/local/bin/node
+
+//
+// See ../README.md
+//
+
+//
+// Run as: node ch-2.js < input-file
+//
+
+function substrings (n, m, prefix, max) {
+ if (n . length == 0) {
+ return prefix > -1 &&
+ prefix < max &&
+ prefix % m == 0 ? 1 : 0
+ }
+
+ let fc = n . substr (0, 1)
+ let tail = n . substr (1)
+ let n_prefix = 10 * (prefix == -1 ? 0 : prefix) + + n . substr (0, 1)
+
+ return substrings (tail, m, n_prefix, max) +
+ substrings (tail, m, prefix, max);
+}
+
+ require ('readline')
+. createInterface ({input: process . stdin})
+. on ('line', line => {
+ let [n, m] = line . split (" ")
+ console . log (substrings (n, +m, -1, +n))
+})
+