aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNiels van Dijke <perlboy@cpan.org>2023-01-02 10:12:59 +0000
committerNiels van Dijke <perlboy@cpan.org>2023-01-02 10:12:59 +0000
commitf2e9a23bbd801e4fc9c5366aca1c096f54875f96 (patch)
tree8c5c32d1c5036da6289435a71b7998d20da37922
parent5d3aa9b2255c96c148cedb5a2df5aa113fe70520 (diff)
downloadperlweeklychallenge-club-f2e9a23bbd801e4fc9c5366aca1c096f54875f96.tar.gz
perlweeklychallenge-club-f2e9a23bbd801e4fc9c5366aca1c096f54875f96.tar.bz2
perlweeklychallenge-club-f2e9a23bbd801e4fc9c5366aca1c096f54875f96.zip
w198 - Task 1 & 2
-rwxr-xr-xchallenge-198/perlboy1967/perl/ch-1.pl46
-rwxr-xr-xchallenge-198/perlboy1967/perl/ch-2.pl38
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;