diff options
| author | Luis Mochan <mochan@fis.unam.mx> | 2023-12-03 23:05:00 -0600 |
|---|---|---|
| committer | Luis Mochan <mochan@fis.unam.mx> | 2023-12-03 23:05:00 -0600 |
| commit | 0e149357fcf2b47b6a98987e703691b3db57c3e9 (patch) | |
| tree | 0dc28d22bbb8f7c60a38359278d50415f82f4ea6 /challenge-246 | |
| parent | b41848354dc1a09ae68e01e91b551a36d13f8bda (diff) | |
| download | perlweeklychallenge-club-0e149357fcf2b47b6a98987e703691b3db57c3e9.tar.gz perlweeklychallenge-club-0e149357fcf2b47b6a98987e703691b3db57c3e9.tar.bz2 perlweeklychallenge-club-0e149357fcf2b47b6a98987e703691b3db57c3e9.zip | |
Solve PWC246
Diffstat (limited to 'challenge-246')
| -rw-r--r-- | challenge-246/wlmb/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-246/wlmb/perl/ch-1.pl | 9 | ||||
| -rwxr-xr-x | challenge-246/wlmb/perl/ch-2.pl | 23 |
3 files changed, 33 insertions, 0 deletions
diff --git a/challenge-246/wlmb/blog.txt b/challenge-246/wlmb/blog.txt new file mode 100644 index 0000000000..76a7ba2f74 --- /dev/null +++ b/challenge-246/wlmb/blog.txt @@ -0,0 +1 @@ +https://wlmb.github.io/2023/12/03/PWC246/ diff --git a/challenge-246/wlmb/perl/ch-1.pl b/challenge-246/wlmb/perl/ch-1.pl new file mode 100755 index 0000000000..dc73524925 --- /dev/null +++ b/challenge-246/wlmb/perl/ch-1.pl @@ -0,0 +1,9 @@ +#!/usr/bin/env perl +# Perl weekly challenge 246 +# Task 1: 6 out of 49 +# +# See https://wlmb.github.io/2023/12/03/PWC246/#task-1-6-out-of-49 +use v5.36; +my %n=map{$_=>1} 1..49; +my @n=keys %n; +say join " ", @n[0..5]; diff --git a/challenge-246/wlmb/perl/ch-2.pl b/challenge-246/wlmb/perl/ch-2.pl new file mode 100755 index 0000000000..025a9d98b3 --- /dev/null +++ b/challenge-246/wlmb/perl/ch-2.pl @@ -0,0 +1,23 @@ +#!/usr/bin/env perl +# Perl weekly challenge 246 +# Task 2: Linear Recurrence of Second Order +# +# See https://wlmb.github.io/2023/12/03/PWC246/#task-2-linear-recurrence-of-second-order +use v5.36; +use List::Util qw(all); +die <<~"FIN" unless @ARGV>=4; + Usage: $0 N0 N1 N2 N3 [N4...] + to check if the sequence of integers Ni obeys a linear second order recurrence with + integer coefficients + FIN +die "Arguments must be integer" unless all {/^[+-]?\d+$/} @ARGV; +my @x =@ARGV; +my $num_p = $x[2]**2-$x[3]*$x[1]; +my $num_q = $x[0]*$x[3]-$x[1]*$x[2]; +my $den = $x[0]*$x[2]-$x[1]**2; +my $result = $num_p%$den==0 && $num_q%$den==0; # coefficients are integer +my $p=$num_p/$den; +my $q=$num_q/$den; +$result &&= $x[$_]==$p*$x[$_-2]+$q*$x[$_-1] for (4..@x-1); +$result = $result?"True":"False"; +say "@x => $result" |
