aboutsummaryrefslogtreecommitdiff
path: root/challenge-138/abigail
diff options
context:
space:
mode:
authorAbigail <abigail@abigail.be>2021-11-15 12:50:41 +0100
committerAbigail <abigail@abigail.be>2021-11-15 12:50:41 +0100
commit9e888d2cb682624efcdc9fb3ce1ff981a9b5ca32 (patch)
tree64998c8530746ff0c91af8347b21cd85c44696bf /challenge-138/abigail
parent2a559f3606c361aed983bc530557e885719c5792 (diff)
downloadperlweeklychallenge-club-9e888d2cb682624efcdc9fb3ce1ff981a9b5ca32.tar.gz
perlweeklychallenge-club-9e888d2cb682624efcdc9fb3ce1ff981a9b5ca32.tar.bz2
perlweeklychallenge-club-9e888d2cb682624efcdc9fb3ce1ff981a9b5ca32.zip
bc solution for week 138, part 2
Diffstat (limited to 'challenge-138/abigail')
-rw-r--r--challenge-138/abigail/bc/ch-2.bc30
1 files changed, 30 insertions, 0 deletions
diff --git a/challenge-138/abigail/bc/ch-2.bc b/challenge-138/abigail/bc/ch-2.bc
new file mode 100644
index 0000000000..340f9bfea7
--- /dev/null
+++ b/challenge-138/abigail/bc/ch-2.bc
@@ -0,0 +1,30 @@
+#
+# See ../README.md
+#
+
+#
+# Run as: bc ch-2.bc < input-file
+#
+
+define can_split (target, number) {
+ if (target > number || target < 0) {return 0}
+ if (target == number) {return 1}
+ pow_10 = 10
+ while (pow_10 <= number) {
+ if (can_split (target - (number % pow_10), number / pow_10)) {
+ return 1
+ }
+ pow_10 *= 10
+ }
+ return 0
+}
+
+
+while (1) {
+ number = read (); if (number == 0) {break}
+ if (can_split (sqrt (number), number)) {
+ 1
+ } else {
+ 0
+ }
+}