diff options
| -rwxr-xr-x | challenge-241/perlboy1967/perl/ch2a.pl | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/challenge-241/perlboy1967/perl/ch2a.pl b/challenge-241/perlboy1967/perl/ch2a.pl new file mode 100755 index 0000000000..f7063ddb4d --- /dev/null +++ b/challenge-241/perlboy1967/perl/ch2a.pl @@ -0,0 +1,39 @@ +#!/bin/perl + +=pod + +The Weekly Challenge - 241 +- https://theweeklychallenge.org/blog/perl-weekly-challenge-241 + +Author: Niels 'PerlBoy' van Dijke + +Task 2: Prime Order +Submitted by: Mohammad S Anwar + +You are given an array of unique positive integers greater than 2. + +Write a script to sort them in ascending order of the count of their prime factors, tie-breaking +by ascending value. + +=cut + +use v5.32; +use common::sense; + +use Math::Prime::Util qw(factor); + +use Test2::V0; + +sub primeOrder (@) { + map { $$_[0] } sort { + $a->$#* <=> $b->$#* + || + $a->[0] <=> $b->[0] + } map { [$_, factor($_)] } @_; + +} + +is([primeOrder(11,8,27,4)],[11,4,8,27]); +is([primeOrder(15,3,4,2,12)],[2,3,4,15,12]); + +done_testing; |
