aboutsummaryrefslogtreecommitdiff
path: root/challenge-082
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2020-10-18 22:49:10 +0100
committerGitHub <noreply@github.com>2020-10-18 22:49:10 +0100
commit501d3341ac7d1fc6b47f2ba11af9be81af348e5d (patch)
tree1e3aef5a6f9aa104874a2835e50b456965d67c66 /challenge-082
parentc9f1e735d24c058c4f8cd7b481634522aca9ac11 (diff)
parentb68a75a9e68e7e13b22ab5257f889a2bc025216b (diff)
downloadperlweeklychallenge-club-501d3341ac7d1fc6b47f2ba11af9be81af348e5d.tar.gz
perlweeklychallenge-club-501d3341ac7d1fc6b47f2ba11af9be81af348e5d.tar.bz2
perlweeklychallenge-club-501d3341ac7d1fc6b47f2ba11af9be81af348e5d.zip
Merge pull request #2546 from adamcrussell/challenge-082
perl solution for part 1 of challenge-082
Diffstat (limited to 'challenge-082')
-rw-r--r--challenge-082/adam-russell/perl/ch-1.pl30
1 files changed, 30 insertions, 0 deletions
diff --git a/challenge-082/adam-russell/perl/ch-1.pl b/challenge-082/adam-russell/perl/ch-1.pl
new file mode 100644
index 0000000000..a9bdce7ab6
--- /dev/null
+++ b/challenge-082/adam-russell/perl/ch-1.pl
@@ -0,0 +1,30 @@
+use strict;
+use warnings;
+##
+# You are given 2 positive numbers $M and $N.
+# Write a script to list all common factors of the given numbers.
+##
+sub factor{
+ my($n) = @_;
+ my @factors = (1);
+ foreach my $j (2..sqrt($n)){
+ push @factors, $j if $n % $j == 0;
+ push @factors, ($n / $j) if $n % $j == 0 && $j ** 2 != $n;
+ }
+ return @factors;
+}
+
+sub common_factors{
+ my($m, $n) = @_;
+ my @common_factors = grep { my $f = $_; grep { $f == $_ } @{$n}} @{$m};
+ return @common_factors;
+}
+
+
+MAIN:{
+ my $M = 12;
+ my $N = 18;
+ my @m_factors = factor($M);
+ my @n_factors = factor($N);
+ print "(" . join(",", common_factors(\@m_factors, \@n_factors)) . ")\n";
+} \ No newline at end of file