aboutsummaryrefslogtreecommitdiff
path: root/challenge-138/abigail/tcl
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/tcl
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/tcl')
-rw-r--r--challenge-138/abigail/tcl/ch-2.tcl34
1 files changed, 34 insertions, 0 deletions
diff --git a/challenge-138/abigail/tcl/ch-2.tcl b/challenge-138/abigail/tcl/ch-2.tcl
new file mode 100644
index 0000000000..70c212d31e
--- /dev/null
+++ b/challenge-138/abigail/tcl/ch-2.tcl
@@ -0,0 +1,34 @@
+#
+# See ../README.md
+#
+
+#
+# Run as: tclsh ch-2.tcl < input-file
+#
+
+proc can_split {target number} {
+ if {$target > $number} {return 0}
+ if {$target < 0} {return 0}
+ if {$target == $number} {return 1}
+ set pow_10 10
+ while {$pow_10 < $number} {
+ if {[can_split [expr $target - ($number % $pow_10)] \
+ [expr $number / $pow_10]]} {return 1}
+ set pow_10 [expr $pow_10 * 10]
+ }
+ return 0
+}
+
+
+while {[gets stdin number] >= 0} {
+ set sqrt [expr isqrt ($number)]
+ if {$number > 1} {
+ if {[can_split $sqrt $number]} {
+ puts 1
+ } {
+ puts 0
+ }
+ } {
+ puts 0
+ }
+}