aboutsummaryrefslogtreecommitdiff
path: root/challenge-138/abigail/node
diff options
context:
space:
mode:
authorAbigail <abigail@abigail.be>2021-11-14 19:04:39 +0100
committerAbigail <abigail@abigail.be>2021-11-14 19:05:04 +0100
commit522e70815e8a79ccd7f628768e6699bf54747dd5 (patch)
treed8e23b976fee0c9e07c5636d3acd1e0619f223fa /challenge-138/abigail/node
parentc1db8bac0eaafcc7e7c94d712ce24dc69b776c53 (diff)
downloadperlweeklychallenge-club-522e70815e8a79ccd7f628768e6699bf54747dd5.tar.gz
perlweeklychallenge-club-522e70815e8a79ccd7f628768e6699bf54747dd5.tar.bz2
perlweeklychallenge-club-522e70815e8a79ccd7f628768e6699bf54747dd5.zip
Solutions for week 138, part 2 in 14 languages.
Diffstat (limited to 'challenge-138/abigail/node')
-rw-r--r--challenge-138/abigail/node/ch-2.js34
1 files changed, 34 insertions, 0 deletions
diff --git a/challenge-138/abigail/node/ch-2.js b/challenge-138/abigail/node/ch-2.js
new file mode 100644
index 0000000000..571e5ff5f2
--- /dev/null
+++ b/challenge-138/abigail/node/ch-2.js
@@ -0,0 +1,34 @@
+#!/usr/local/bin/node
+
+//
+// See ../README.md
+//
+
+//
+// Run as: node ch-2.js < input-file
+//
+
+function can_split (target, number) {
+ if (target > number || target < 0) {return false}
+ if (target == number) {return true}
+
+ let pow_10 = 10
+
+ while (pow_10 <= number) {
+ if (can_split (target - (number % pow_10),
+ Math . floor (number / pow_10))) {
+ return true
+ }
+ pow_10 *= 10
+ }
+
+ return false
+}
+
+
+ require ('readline')
+. createInterface ({input: process . stdin})
+. on ('line', number => {
+ console . log (number > 1 && can_split
+ (Math . trunc (Math . sqrt (number)), number) ? 1 : 0)
+})