diff options
| author | Abigail <abigail@abigail.be> | 2021-11-15 12:50:41 +0100 |
|---|---|---|
| committer | Abigail <abigail@abigail.be> | 2021-11-15 12:50:41 +0100 |
| commit | 9e888d2cb682624efcdc9fb3ce1ff981a9b5ca32 (patch) | |
| tree | 64998c8530746ff0c91af8347b21cd85c44696bf /challenge-138/abigail | |
| parent | 2a559f3606c361aed983bc530557e885719c5792 (diff) | |
| download | perlweeklychallenge-club-9e888d2cb682624efcdc9fb3ce1ff981a9b5ca32.tar.gz perlweeklychallenge-club-9e888d2cb682624efcdc9fb3ce1ff981a9b5ca32.tar.bz2 perlweeklychallenge-club-9e888d2cb682624efcdc9fb3ce1ff981a9b5ca32.zip | |
bc solution for week 138, part 2
Diffstat (limited to 'challenge-138/abigail')
| -rw-r--r-- | challenge-138/abigail/bc/ch-2.bc | 30 |
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 + } +} |
