aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-05-10 11:19:40 +0100
committerGitHub <noreply@github.com>2021-05-10 11:19:40 +0100
commit7a73f040a98fe7423753192e94bac15cb465ff28 (patch)
tree45ba5f89153ed48bec25e0c207f3690927a8da9b
parent750cdab5c1d62e75f674aa283fd38c5994c62019 (diff)
parent20304cf224753f1778563f80cae5dc8be2800fac (diff)
downloadperlweeklychallenge-club-7a73f040a98fe7423753192e94bac15cb465ff28.tar.gz
perlweeklychallenge-club-7a73f040a98fe7423753192e94bac15cb465ff28.tar.bz2
perlweeklychallenge-club-7a73f040a98fe7423753192e94bac15cb465ff28.zip
Merge pull request #4050 from lakpatashi/challenge-020
Finished Challenge-020 with perl
-rw-r--r--challenge-020/lakpatashi/README1
-rwxr-xr-xchallenge-020/lakpatashi/perl/ch-1.pl22
-rwxr-xr-xchallenge-020/lakpatashi/perl/ch-2.pl38
3 files changed, 61 insertions, 0 deletions
diff --git a/challenge-020/lakpatashi/README b/challenge-020/lakpatashi/README
new file mode 100644
index 0000000000..bc153bd576
--- /dev/null
+++ b/challenge-020/lakpatashi/README
@@ -0,0 +1 @@
+Solution by lakpatashi
diff --git a/challenge-020/lakpatashi/perl/ch-1.pl b/challenge-020/lakpatashi/perl/ch-1.pl
new file mode 100755
index 0000000000..3cb4296154
--- /dev/null
+++ b/challenge-020/lakpatashi/perl/ch-1.pl
@@ -0,0 +1,22 @@
+#!/usr/bin/perl
+
+use warnings;
+use strict;
+use Data::Dumper;
+use List::Util qw(sum);
+use feature qw(switch);
+
+#part 1
+my ($str) = shift;
+my @arr = split //,$str;
+my $char = shift @arr;
+print $char;
+for my $x (@arr){
+ if($x ne $char){
+ print " ";
+ $char = $x;
+ }
+ print $x;
+}
+
+
diff --git a/challenge-020/lakpatashi/perl/ch-2.pl b/challenge-020/lakpatashi/perl/ch-2.pl
new file mode 100755
index 0000000000..3e659002f8
--- /dev/null
+++ b/challenge-020/lakpatashi/perl/ch-2.pl
@@ -0,0 +1,38 @@
+#!/usr/bin/perl
+
+use warnings;
+use strict;
+use Data::Dumper;
+
+# part 2
+
+my %hash;
+
+my $n = 2;
+for (;;){
+ #print "checking:: $n\n";
+ my $val = divisorSum($n);
+ if( $val > 1 ){
+ if( divisorSum($val)==$n and $val != $n){
+ print "found min pair:: ($n,$val)\n";
+ last;
+ }
+ }
+ #print "$n\n";
+ last if $n == 1000;
+ $n++;
+}
+
+sub divisorSum{
+ my ($n)= @_;
+ my $divisorSum = 1;
+ for (2..int sqrt $n){
+ if ($_**2 == $n){
+ $divisorSum += $_;
+ }else{
+ $divisorSum += $_ + int $n/$_ unless $n % $_; # add if divisor
+ }
+ }
+ return $divisorSum;
+}
+