diff options
| author | Niels van Dijke <perlboy@cpan.org> | 2023-01-02 10:12:59 +0000 |
|---|---|---|
| committer | Niels van Dijke <perlboy@cpan.org> | 2023-01-02 10:12:59 +0000 |
| commit | f2e9a23bbd801e4fc9c5366aca1c096f54875f96 (patch) | |
| tree | 8c5c32d1c5036da6289435a71b7998d20da37922 | |
| parent | 5d3aa9b2255c96c148cedb5a2df5aa113fe70520 (diff) | |
| download | perlweeklychallenge-club-f2e9a23bbd801e4fc9c5366aca1c096f54875f96.tar.gz perlweeklychallenge-club-f2e9a23bbd801e4fc9c5366aca1c096f54875f96.tar.bz2 perlweeklychallenge-club-f2e9a23bbd801e4fc9c5366aca1c096f54875f96.zip | |
w198 - Task 1 & 2
| -rwxr-xr-x | challenge-198/perlboy1967/perl/ch-1.pl | 46 | ||||
| -rwxr-xr-x | challenge-198/perlboy1967/perl/ch-2.pl | 38 |
2 files changed, 84 insertions, 0 deletions
diff --git a/challenge-198/perlboy1967/perl/ch-1.pl b/challenge-198/perlboy1967/perl/ch-1.pl new file mode 100755 index 0000000000..0751c226c2 --- /dev/null +++ b/challenge-198/perlboy1967/perl/ch-1.pl @@ -0,0 +1,46 @@ +#!/bin/perl + +=pod + +The Weekly Challenge - 197 +- https://theweeklychallenge.org/blog/perl-weekly-challenge-197/#TASK1 + +Author: Niels 'PerlBoy' van Dijke + +Task 1: Max Gap +Submitted by: Mohammad S Anwar + +You are given a list of integers, @list. + +Write a script to find the total pairs in the sorted list where 2 consecutive +elements has the max gap. If the list contains less then 2 elements then return 0. + +=cut + +use v5.16; +use common::sense; + +use List::Util qw(max); +use List::MoreUtils qw(slide); + +use Test::More; + + +sub maxGap { + return 0 if (scalar @_ < 2); + + my @l = sort { $a <=> $b } @_; + + # Find maxGap size + my $maxGap = max slide { $b - $a } @l; + + # Find and return maxGap pairs + scalar grep { defined } slide { $b - $a == $maxGap ? [$a,$b] : undef } @l; +} + + +is(maxGap(2,5,8,1),2); +is(maxGap(3),0); +is(maxGap(1,1,2,2,3,3),2); + +done_testing; diff --git a/challenge-198/perlboy1967/perl/ch-2.pl b/challenge-198/perlboy1967/perl/ch-2.pl new file mode 100755 index 0000000000..5be954ce0c --- /dev/null +++ b/challenge-198/perlboy1967/perl/ch-2.pl @@ -0,0 +1,38 @@ +#!/bin/perl + +=pod + +The Weekly Challenge - 198 +- https://theweeklychallenge.org/blog/perl-weekly-challenge-198/#TASK2 + +Author: Niels 'PerlBoy' van Dijke + +Task 2: Prime Count +Submitted by: Mohammad S Anwar + +You are given an integer $n > 0. + +Write a script to print the count of primes less than $n. + +=cut + +use v5.16; +use common::sense; + +use Math::Prime::XS qw(primes); + +use Test::More; + + +sub primeCount ($) { + my @p = primes($_[0] - 1); + return scalar @p; +} + + +is(primeCount(10),4); +is(primeCount(15),6); +is(primeCount(1),0); +is(primeCount(25),9); + +done_testing; |
