aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-11-15 13:47:38 +0000
committerGitHub <noreply@github.com>2021-11-15 13:47:38 +0000
commit539750d62489e789280ec4d15a528f353e0c3baf (patch)
treef0ab2104ba5bcb5336888de4b1457cc9dc95ccf6
parent253e59bd48e295150f8dd52a89e77933e34db7d8 (diff)
parent9e888d2cb682624efcdc9fb3ce1ff981a9b5ca32 (diff)
downloadperlweeklychallenge-club-539750d62489e789280ec4d15a528f353e0c3baf.tar.gz
perlweeklychallenge-club-539750d62489e789280ec4d15a528f353e0c3baf.tar.bz2
perlweeklychallenge-club-539750d62489e789280ec4d15a528f353e0c3baf.zip
Merge pull request #5228 from Abigail/abigail/week-138
bc solution for week 138, part 2
-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
+ }
+}