aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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
+ }
+}