diff options
| -rw-r--r-- | challenge-241/vinod-k/perl/ch-1.pl | 17 | ||||
| -rw-r--r-- | challenge-241/vinod-k/perl/ch-2.pl | 39 |
2 files changed, 56 insertions, 0 deletions
diff --git a/challenge-241/vinod-k/perl/ch-1.pl b/challenge-241/vinod-k/perl/ch-1.pl new file mode 100644 index 0000000000..cd7064c8b3 --- /dev/null +++ b/challenge-241/vinod-k/perl/ch-1.pl @@ -0,0 +1,17 @@ +#!/usr/bin/perl +use strict; +use warnings; + +my @a = (4, 5, 6, 7, 8, 9); +my %params = map { $_ => 1 } @a; + +my $diff = 2; +my $count = 0; + +foreach my $i (@a){ + if(exists($params{$i + $diff}) && exists($params{$i+$diff+$diff})){ + $count++; + } +} + +print "Unique Arithmetic Triplets with diff $diff: $count\n"; diff --git a/challenge-241/vinod-k/perl/ch-2.pl b/challenge-241/vinod-k/perl/ch-2.pl new file mode 100644 index 0000000000..8136051332 --- /dev/null +++ b/challenge-241/vinod-k/perl/ch-2.pl @@ -0,0 +1,39 @@ +#!/usr/bin/perl +use strict; +use warnings; + +my (%data, %h); + +my @array = (11, 8, 27, 4); + +foreach my $num (@array){ + printPrimeFactors($num); +} + +foreach my $key (keys %data){ + foreach my $key2 (keys %{$data{$key}}){ + $h{$key} += $data{$key}{$key2}; + } +} + +my @keys = sort { + $h{$a} <=> $h{$b} + or + $a <=> $b +} keys(%h); + +print "Prime factors: ". join(',', @keys); + +sub printPrimeFactors { + my $n = shift; + my $a = $n; + + for (my $i = 2; $n > 1; $i++) { + if ($n % $i == 0) { + while ($n % $i == 0) { + $data{$a}{$i}++; + $n = $n / $i ; + } + } + } +} |
