diff options
| author | Abigail <abigail@abigail.be> | 2021-11-01 17:34:39 +0100 |
|---|---|---|
| committer | Abigail <abigail@abigail.be> | 2021-11-01 17:34:39 +0100 |
| commit | 4f367cc84f76448eb21a5bda0bb4771f1118d09f (patch) | |
| tree | 1ad482838d413ea0cd9b592f1ed6adac9b88f99b /challenge-133/abigail/perl | |
| parent | c97941ff8e30ea3fdb098a9cfdd6050a002478b6 (diff) | |
| download | perlweeklychallenge-club-4f367cc84f76448eb21a5bda0bb4771f1118d09f.tar.gz perlweeklychallenge-club-4f367cc84f76448eb21a5bda0bb4771f1118d09f.tar.bz2 perlweeklychallenge-club-4f367cc84f76448eb21a5bda0bb4771f1118d09f.zip | |
Alternative Perl solution for week 133, part 1
Diffstat (limited to 'challenge-133/abigail/perl')
| -rw-r--r-- | challenge-133/abigail/perl/ch-1a.pl | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/challenge-133/abigail/perl/ch-1a.pl b/challenge-133/abigail/perl/ch-1a.pl new file mode 100644 index 0000000000..dfe877ae0f --- /dev/null +++ b/challenge-133/abigail/perl/ch-1a.pl @@ -0,0 +1,36 @@ +#!/opt/perl/bin/perl + +use 5.032; + +use strict; +use warnings; +no warnings 'syntax'; + +use experimental 'signatures'; +use experimental 'lexical_subs'; + +# +# See ../README.md +# + +# +# Run as: perl ch-1a.pl < input-file +# + +# +# Unlike ch-1.pl, this is a solution which only avoids sqrt (and int for +# that matter) +# +# Given that: +# +# * sqrt (a) == a^(1/2) +# * a^b == exp (log (a^b)), a > 0 +# * log (a^b) == b * log (a), a > 0 +# +# We can write sqrt (N) as exp (log (N) / 2) +# +# We avoid using int() by just stripping the decimal point and +# anything following it using a regular expression. +# + +say (exp (log ($_) / 2) =~ s/\..*//r) while <>; |
