diff options
| author | Abigail <abigail@abigail.be> | 2021-11-14 19:04:39 +0100 |
|---|---|---|
| committer | Abigail <abigail@abigail.be> | 2021-11-14 19:05:04 +0100 |
| commit | 522e70815e8a79ccd7f628768e6699bf54747dd5 (patch) | |
| tree | d8e23b976fee0c9e07c5636d3acd1e0619f223fa /challenge-138/abigail/tcl | |
| parent | c1db8bac0eaafcc7e7c94d712ce24dc69b776c53 (diff) | |
| download | perlweeklychallenge-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.tcl | 34 |
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 + } +} |
