diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2023-01-09 04:14:39 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-01-09 04:14:39 +0000 |
| commit | 337ba399e111538633148668cced352f773c01ea (patch) | |
| tree | c378b38f58c77b5e814a7cd5e21cf4a5148cbe2e | |
| parent | 52382b93d96a281c29976fd55a64e59e8009e266 (diff) | |
| parent | 9245d5203a66f88f1e2fce4cf4f95cc4f6cef505 (diff) | |
| download | perlweeklychallenge-club-337ba399e111538633148668cced352f773c01ea.tar.gz perlweeklychallenge-club-337ba399e111538633148668cced352f773c01ea.tar.bz2 perlweeklychallenge-club-337ba399e111538633148668cced352f773c01ea.zip | |
Merge pull request #7382 from spazm/week-198
Week 198
| -rwxr-xr-x | challenge-198/spazm/perl/ch-1.pl | 68 | ||||
| -rwxr-xr-x | challenge-198/spazm/perl/ch-2.pl | 30 |
2 files changed, 98 insertions, 0 deletions
diff --git a/challenge-198/spazm/perl/ch-1.pl b/challenge-198/spazm/perl/ch-1.pl new file mode 100755 index 0000000000..94f1bf1dfa --- /dev/null +++ b/challenge-198/spazm/perl/ch-1.pl @@ -0,0 +1,68 @@ +#!/usr/bin/env perl +use v5.34; + +use experimental qw(signatures); + +=pod +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 + +sub find_total_pairs (@ints) +{ + return find_total_pairs_sorted( sort(@ints) ); +} + +sub find_total_pairs_sorted ( $first, @ints ) +{ + return 0 unless @ints; + my $max_delta = 0; + my $max_count = 0; + my $previous = $first; + for my $i (@ints) + { + my $delta = $i - $previous; + $previous = $i; + + if ( $delta == $max_delta ) + { + $max_count++; + } + elsif ( $delta > $max_delta ) + { + $max_count = 1; + $max_delta = $delta; + } + } + return $max_count; +} + +sub find_total_pairs_sorted_orig ( $first, @ints ) +{ + return 0 unless @ints; + my %gap_pairs; + my $max_delta = 0; + my $previous = $first; + for my $i (@ints) + { + my $delta = $i - $previous; + $gap_pairs{$delta}++; + if ( $delta > $max_delta ) + { + $max_delta = $delta; + } + $previous = $i; + } + say %gap_pairs; + return $gap_pairs{$max_delta}; +} + +sub main +{ + say "pairs: " . find_total_pairs( 2, 5, 8, 1 ); + say "pairs: " . find_total_pairs(3); +} + +main(); diff --git a/challenge-198/spazm/perl/ch-2.pl b/challenge-198/spazm/perl/ch-2.pl new file mode 100755 index 0000000000..5b98bb812d --- /dev/null +++ b/challenge-198/spazm/perl/ch-2.pl @@ -0,0 +1,30 @@ +#!/usr/bin/env perl +use v5.34; + +use experimental qw(signatures); +use Math::Prime::Util qw(primes); + +=pod +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 + +sub count_of_primes ($n) +{ + return scalar @{ primes($n) }; +} + +sub main +{ + for my $n ( 0, 1, 10, 15, 25 ) + { + printf( "there are %d primes less than %i\n", + count_of_primes($n), $n ); + } +} + +main(); |
