aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-023/adam-russell/blog.txt1
-rw-r--r--challenge-023/adam-russell/perl5/ch-1.pl29
-rw-r--r--challenge-023/adam-russell/perl5/ch-2.pl21
3 files changed, 51 insertions, 0 deletions
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..77e4f5ffaf
--- /dev/null
+++ b/challenge-023/adam-russell/perl5/ch-1.pl
@@ -0,0 +1,29 @@
+use strict;
+use warnings;
+##
+# Create a script that prints nth order forward difference series.
+##
+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 join(", ", @{$reduced}) . "\n";
+}
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..75c5561781
--- /dev/null
+++ b/challenge-023/adam-russell/perl5/ch-2.pl
@@ -0,0 +1,21 @@
+use strict;
+use warnings;
+##
+# Create a script that prints Prime Decomposition of a given number.
+##
+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;
+}
+
+MAIN:{
+ my $n = $ARGV[0];
+ print join(", ", prime_factor($n)) . "\n";
+}