diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2021-11-01 00:14:30 +0000 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2021-11-01 00:14:30 +0000 |
| commit | 39b21d30a96664e10efdaebd1b3d56b6781643b9 (patch) | |
| tree | aeb9e2aafba1a55b2018c78da1e0c8c9d4d71b55 /challenge-136 | |
| parent | 418a5d39c973dd8988e328124e4167db6a36a502 (diff) | |
| download | perlweeklychallenge-club-39b21d30a96664e10efdaebd1b3d56b6781643b9.tar.gz perlweeklychallenge-club-39b21d30a96664e10efdaebd1b3d56b6781643b9.tar.bz2 perlweeklychallenge-club-39b21d30a96664e10efdaebd1b3d56b6781643b9.zip | |
- Added solution by Robert DiCicco.
Diffstat (limited to 'challenge-136')
| -rw-r--r-- | challenge-136/robert-dicicco/README | 1 | ||||
| -rw-r--r-- | challenge-136/robert-dicicco/perl/ch-1.pl | 68 |
2 files changed, 69 insertions, 0 deletions
diff --git a/challenge-136/robert-dicicco/README b/challenge-136/robert-dicicco/README new file mode 100644 index 0000000000..1a7ec31152 --- /dev/null +++ b/challenge-136/robert-dicicco/README @@ -0,0 +1 @@ +Solutions by Robert-DiCicco. diff --git a/challenge-136/robert-dicicco/perl/ch-1.pl b/challenge-136/robert-dicicco/perl/ch-1.pl new file mode 100644 index 0000000000..c80ce76fc2 --- /dev/null +++ b/challenge-136/robert-dicicco/perl/ch-1.pl @@ -0,0 +1,68 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +use IO::Prompter; +use Array::Utils qw(:all); +use List::MoreUtils qw{any}; +use 5.30.0; + +#### Get first number and guarantee integer + +my $fnum = prompt 'Enter the first number: ', -num; + +chomp($fnum); + +$fnum = int($fnum); + +say "First number: $fnum"; + +#### Get first number and guarantee integer #### +my $snum = prompt 'Enter the second number: ', -num; + +chomp($snum); +$snum = int($snum); + +say "Second number: $snum"; + +my $retval = common_factor($fnum, $snum); + +print "Output: $retval\n"; + +sub common_factor { + my @denoms1 = (); #### array to hold divisors for first number + + for (my $x = 1; $x < $_[0]; $x++) { + my $factor = $_[0] / $x; #### Get a divisor + if ($factor =~ /^-?\d+\z/ ) { #### All numbers, no decimal point + if ($factor != $_[0]) { + push(@denoms1, $factor); #### push divisor into array + } + } + } + + my $snum = $_[1]; + my @denoms2= (); + + for (my $x = 1; $x < $_[1]; $x++){ + my $factor = $_[1] / $x; + if ($factor =~ /^-?\d+\z/ ){ + if ($factor != $_[1]){ + push(@denoms2, $factor); + } + } + } + + print ("@denoms1\n"); #### Divisors for first number + print ("@denoms2\n"); #### divisors for second number + + my @isect = intersect(@denoms1, @denoms2); #### get divisors common between arrays + print("@isect\n"); + + if (any { $_ == 2 } @isect ){ + return(1); #### Two Friendly + } else { + return(0); #### Not Two Friendly + } +} |
