From 5a0df47ac7abb69a2612891332c9b1594b308428 Mon Sep 17 00:00:00 2001 From: Adam Russell Date: Sun, 1 Sep 2019 02:14:49 -0400 Subject: initial commit --- challenge-023/adam-russell/blog.txt | 1 + challenge-023/adam-russell/perl5/ch-1.pl | 31 +++++++++++++++++++++++++++++++ challenge-023/adam-russell/perl5/ch-2.pl | 18 ++++++++++++++++++ challenge-023/adam-russell/perl5/ch-3.pl | 0 4 files changed, 50 insertions(+) create mode 100644 challenge-023/adam-russell/blog.txt create mode 100644 challenge-023/adam-russell/perl5/ch-1.pl create mode 100644 challenge-023/adam-russell/perl5/ch-2.pl create mode 100644 challenge-023/adam-russell/perl5/ch-3.pl diff --git a/challenge-023/adam-russell/blog.txt b/challenge-023/adam-russell/blog.txt new file mode 100644 index 0000000000..be945e653a --- /dev/null +++ b/challenge-023/adam-russell/blog.txt @@ -0,0 +1 @@ +https://adamcrussell.livejournal.com/7762.html diff --git a/challenge-023/adam-russell/perl5/ch-1.pl b/challenge-023/adam-russell/perl5/ch-1.pl new file mode 100644 index 0000000000..8823af7154 --- /dev/null +++ b/challenge-023/adam-russell/perl5/ch-1.pl @@ -0,0 +1,31 @@ +use strict; +use warnings; +## +# Create a script that prints nth order forward difference series. +## +use Data::Dump q/pp/; + +sub forward_difference{ + my($order, $numbers) = @_; + if(!$order || @{$numbers} == 1){ + return $numbers; + } + else{ + my $reduced = []; + my $previous = $numbers->[0]; + for(my $i = 1; $i < @{$numbers}; $i++){ + push @{$reduced}, $numbers->[$i] - $previous; + $previous = $numbers->[$i]; + } + forward_difference($order - 1, $reduced); + } + +} + + +MAIN:{ + my $order = $ARGV[0]; + my @numbers = @ARGV[1 .. (@ARGV - 1)]; + my $reduced = forward_difference($order, \@numbers); + print pp $reduced; +} diff --git a/challenge-023/adam-russell/perl5/ch-2.pl b/challenge-023/adam-russell/perl5/ch-2.pl new file mode 100644 index 0000000000..e384e411e3 --- /dev/null +++ b/challenge-023/adam-russell/perl5/ch-2.pl @@ -0,0 +1,18 @@ +use Data::Dump q/pp/; + +sub prime_factor{ + my $x = shift(@_); + my @factors; + for (my $y = 2; $y <= $x; $y++){ + next if $x % $y; + $x /= $y; + push @factors, $y; + redo; + } + return @factors; +} + +print pp prime_factor(228); +print pp prime_factor(100); +print pp prime_factor(110); + diff --git a/challenge-023/adam-russell/perl5/ch-3.pl b/challenge-023/adam-russell/perl5/ch-3.pl new file mode 100644 index 0000000000..e69de29bb2 -- cgit From 21cb1d0b225e6dc81a30d810c3f4063b7570bd1a Mon Sep 17 00:00:00 2001 From: Adam Russell Date: Sun, 1 Sep 2019 17:18:50 -0400 Subject: solutions for challenge 023 --- challenge-023/adam-russell/perl5/ch-1.pl | 4 +--- challenge-023/adam-russell/perl5/ch-2.pl | 15 +++++++++------ challenge-023/adam-russell/perl5/ch-3.pl | 0 3 files changed, 10 insertions(+), 9 deletions(-) delete mode 100644 challenge-023/adam-russell/perl5/ch-3.pl diff --git a/challenge-023/adam-russell/perl5/ch-1.pl b/challenge-023/adam-russell/perl5/ch-1.pl index 8823af7154..77e4f5ffaf 100644 --- a/challenge-023/adam-russell/perl5/ch-1.pl +++ b/challenge-023/adam-russell/perl5/ch-1.pl @@ -3,8 +3,6 @@ use warnings; ## # Create a script that prints nth order forward difference series. ## -use Data::Dump q/pp/; - sub forward_difference{ my($order, $numbers) = @_; if(!$order || @{$numbers} == 1){ @@ -27,5 +25,5 @@ MAIN:{ my $order = $ARGV[0]; my @numbers = @ARGV[1 .. (@ARGV - 1)]; my $reduced = forward_difference($order, \@numbers); - print pp $reduced; + print join(", ", @{$reduced}) . "\n"; } diff --git a/challenge-023/adam-russell/perl5/ch-2.pl b/challenge-023/adam-russell/perl5/ch-2.pl index e384e411e3..75c5561781 100644 --- a/challenge-023/adam-russell/perl5/ch-2.pl +++ b/challenge-023/adam-russell/perl5/ch-2.pl @@ -1,5 +1,8 @@ -use Data::Dump q/pp/; - +use strict; +use warnings; +## +# Create a script that prints Prime Decomposition of a given number. +## sub prime_factor{ my $x = shift(@_); my @factors; @@ -12,7 +15,7 @@ sub prime_factor{ return @factors; } -print pp prime_factor(228); -print pp prime_factor(100); -print pp prime_factor(110); - +MAIN:{ + my $n = $ARGV[0]; + print join(", ", prime_factor($n)) . "\n"; +} diff --git a/challenge-023/adam-russell/perl5/ch-3.pl b/challenge-023/adam-russell/perl5/ch-3.pl deleted file mode 100644 index e69de29bb2..0000000000 -- cgit