aboutsummaryrefslogtreecommitdiff
path: root/challenge-136
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2021-11-01 00:14:30 +0000
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2021-11-01 00:14:30 +0000
commit39b21d30a96664e10efdaebd1b3d56b6781643b9 (patch)
treeaeb9e2aafba1a55b2018c78da1e0c8c9d4d71b55 /challenge-136
parent418a5d39c973dd8988e328124e4167db6a36a502 (diff)
downloadperlweeklychallenge-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/README1
-rw-r--r--challenge-136/robert-dicicco/perl/ch-1.pl68
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
+ }
+}