From 7a7c1710f17275d97522b13ff3718135bfb5808f Mon Sep 17 00:00:00 2001 From: vinodk89 Date: Fri, 3 Nov 2023 21:26:46 +0530 Subject: Perl solution for weekly challenge-241 --- challenge-241/vinod-k/perl/ch-1.pl | 17 +++++++++++++++++ challenge-241/vinod-k/perl/ch-2.pl | 39 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 challenge-241/vinod-k/perl/ch-1.pl create mode 100644 challenge-241/vinod-k/perl/ch-2.pl 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..350d72d28d --- /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"; \ No newline at end of file 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..ab20bd19a0 --- /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 ; + } + } + } +} \ No newline at end of file -- cgit