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/bash | |
| 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/bash')
| -rw-r--r-- | challenge-138/abigail/bash/ch-2.sh | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/challenge-138/abigail/bash/ch-2.sh b/challenge-138/abigail/bash/ch-2.sh new file mode 100644 index 0000000000..f8de32c814 --- /dev/null +++ b/challenge-138/abigail/bash/ch-2.sh @@ -0,0 +1,51 @@ +#!/bin/sh + +# +# See ../README.md +# + +# +# Run as: bash ch-2.sh < input-file +# + +set -f + +function can_split () { + local target=$1 + local number=$2 + + if ((target > number)) + then can_split=0; return + fi + if ((target < 0)) + then can_split=0; return + fi + if ((target == number)) + then can_split=1; return + fi + + local pow_10=10 + + while ((pow_10 <= number)) + do can_split $((target - (number % pow_10))) $((number / pow_10)) + if ((can_split == 1)) + then return + fi + ((pow_10 *= 10)) + done + + can_split=0 +} + + +while read num +do sqrt=$(echo "sqrt($num)" | bc) + if ((num > 1)) + then can_split $sqrt $num + if ((can_split == 1)) + then echo 1 + else echo 0 + fi + else echo 0 + fi +done |
