diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2021-10-14 19:54:51 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2021-10-14 19:54:51 +0100 |
| commit | 83fa1554b1eef1a0373d630fb080654779ac45fc (patch) | |
| tree | 390c8b0f9a0ef140eed912ccdc9345e863b3c1da | |
| parent | ae4d12204fe18ad0bfe2395f5d3cb4abc4c8b44c (diff) | |
| parent | 6f4aced7f11794fa97873bf97b90a5ec4b9d4a1e (diff) | |
| download | perlweeklychallenge-club-83fa1554b1eef1a0373d630fb080654779ac45fc.tar.gz perlweeklychallenge-club-83fa1554b1eef1a0373d630fb080654779ac45fc.tar.bz2 perlweeklychallenge-club-83fa1554b1eef1a0373d630fb080654779ac45fc.zip | |
Merge branch 'master' of https://github.com/manwar/perlweeklychallenge-club
| -rw-r--r-- | challenge-134/steven-wilson/perl/ch-2.pl | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/challenge-134/steven-wilson/perl/ch-2.pl b/challenge-134/steven-wilson/perl/ch-2.pl new file mode 100644 index 0000000000..a9b0b26acd --- /dev/null +++ b/challenge-134/steven-wilson/perl/ch-2.pl @@ -0,0 +1,34 @@ +#!/usr/bin/env perl +# Week 134 Task 2 +# Distinct Terms Count + +use strict; +use warnings; +use feature qw/ say /; +use Text::ASCIITable; + +my ( $m, $n ) = @ARGV; +my @rows; +my %distict_terms; +my $t = Text::ASCIITable->new(); + +( defined $m && defined $n ) && ( $m =~ /^\d+$/ && $n =~ /^\d+$/ ) + or die "2 positive integers must be passed as command line arguments\n"; + +for my $row ( 1 .. $m ) { + my @multiples = map { $row * $_ } ( 1 .. $n ); + map { $distict_terms{$_} = 1 } @multiples; + $rows[$row] = \@multiples; +} +my @distict_terms = sort { $a <=> $b } keys %distict_terms; + +printf( "Input: \$m = %d, \$n = %d\n", $m, $n ); +say "Output:\n"; +$t->setCols( 'x', 1 .. $n ); +$t->setOptions( { hide_FirstLine => 1, hide_LastLine => 1 } ); +for my $row ( 1 .. $m ) { + $t->addRow( $row, @{ $rows[$row] } ); +} +print $t; +say "\nDistinct Terms: ", join ", ", @distict_terms; +say "Count: ", scalar @distict_terms; |
