From 78d2196554ebb81ecbcdc2e056e477497675c1ca Mon Sep 17 00:00:00 2001 From: Luis Mochan Date: Mon, 30 Oct 2023 10:13:50 -0600 Subject: Solve PWC241 --- challenge-241/wlmb/blog.txt | 1 + challenge-241/wlmb/perl/ch-1.pl | 17 +++++++++++++++++ challenge-241/wlmb/perl/ch-2.pl | 12 ++++++++++++ 3 files changed, 30 insertions(+) create mode 100644 challenge-241/wlmb/blog.txt create mode 100755 challenge-241/wlmb/perl/ch-1.pl create mode 100755 challenge-241/wlmb/perl/ch-2.pl diff --git a/challenge-241/wlmb/blog.txt b/challenge-241/wlmb/blog.txt new file mode 100644 index 0000000000..82867ba55b --- /dev/null +++ b/challenge-241/wlmb/blog.txt @@ -0,0 +1 @@ +https://wlmb.github.io/2023/10/30/PWC241/ diff --git a/challenge-241/wlmb/perl/ch-1.pl b/challenge-241/wlmb/perl/ch-1.pl new file mode 100755 index 0000000000..1dd1be854b --- /dev/null +++ b/challenge-241/wlmb/perl/ch-1.pl @@ -0,0 +1,17 @@ +#!/usr/bin/env perl +# Perl weekly challenge 241 +# Task 1: Arithmetic Triplets +# +# See https://wlmb.github.io/2023/10/30/PWC241/#task-1-arithmetic-triplets +use v5.36; +use List::Util qw(all); +use Algorithm::Combinatorics qw(combinations); +die <<~"FIN" if @ARGV<2; + Usage: $0 D N0 [N1...] + to count the triplets taken from N0 N1... with difference D between succesive terms; + FIN +my $diff=shift; +my @sorted=sort {$a <=> $b} @ARGV; +die "Array should be ordered" unless all {$sorted[$_]==$ARGV[$_]} 0..@ARGV-1; +say "Nums: @sorted, diff: $diff -> ", + 0+grep{$_->[1]-$_->[0]==$_->[2]-$_->[1]==$diff} combinations([@sorted],3) diff --git a/challenge-241/wlmb/perl/ch-2.pl b/challenge-241/wlmb/perl/ch-2.pl new file mode 100755 index 0000000000..daa9d93bfd --- /dev/null +++ b/challenge-241/wlmb/perl/ch-2.pl @@ -0,0 +1,12 @@ +#!/usr/bin/env perl +# Perl weekly challenge 241 +# Task 2: Prime Order +# +# See https://wlmb.github.io/2023/10/30/PWC241/#task-2-prime-order +use v5.36; +use Math::Prime::Util qw(factor); +die <<~"FIN" unless @ARGV; + Usage: $0 N0 [N1...] + to order the numbers N0 N1 according to the number of factors and their value. + FIN +say join " ", @ARGV, "->", sort{factor($a)<=>factor($b) || $a <=> $b} @ARGV -- cgit