aboutsummaryrefslogtreecommitdiff
path: root/challenge-041
diff options
context:
space:
mode:
authorAdam Russell <ac.russell@live.com>2020-01-05 16:37:23 -0500
committerAdam Russell <ac.russell@live.com>2020-01-05 16:37:23 -0500
commitfc3feb0bfe62987c4d345ca3d23cefcc4e100a05 (patch)
tree83bbccc18800278fdb0d2987f1c0676ccdfd8461 /challenge-041
parent0fe1486e3dd54642f7f02f9a4587c523d0a0b6bb (diff)
downloadperlweeklychallenge-club-fc3feb0bfe62987c4d345ca3d23cefcc4e100a05.tar.gz
perlweeklychallenge-club-fc3feb0bfe62987c4d345ca3d23cefcc4e100a05.tar.bz2
perlweeklychallenge-club-fc3feb0bfe62987c4d345ca3d23cefcc4e100a05.zip
solutions for challenge 041
Diffstat (limited to 'challenge-041')
-rw-r--r--challenge-041/adam-russell/blog.txt1
-rw-r--r--challenge-041/adam-russell/perl/ch-1.pl23
-rw-r--r--challenge-041/adam-russell/perl/ch-2.pl19
3 files changed, 43 insertions, 0 deletions
diff --git a/challenge-041/adam-russell/blog.txt b/challenge-041/adam-russell/blog.txt
new file mode 100644
index 0000000000..30c2420401
--- /dev/null
+++ b/challenge-041/adam-russell/blog.txt
@@ -0,0 +1 @@
+https://adamcrussell.livejournal.com/14043.html
diff --git a/challenge-041/adam-russell/perl/ch-1.pl b/challenge-041/adam-russell/perl/ch-1.pl
new file mode 100644
index 0000000000..7c337eb483
--- /dev/null
+++ b/challenge-041/adam-russell/perl/ch-1.pl
@@ -0,0 +1,23 @@
+use strict;
+use warnings;
+##
+# Write a script to display attractive numbers between 1 and 50.
+##
+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:{
+ for my $n (1 .. 50){
+ my @factors = prime_factor($n);
+ print "$n (" . join(", " , @factors) . ")\n" if(prime_factor(scalar @factors) == 1);
+ }
+}
diff --git a/challenge-041/adam-russell/perl/ch-2.pl b/challenge-041/adam-russell/perl/ch-2.pl
new file mode 100644
index 0000000000..e8b04eb8d2
--- /dev/null
+++ b/challenge-041/adam-russell/perl/ch-2.pl
@@ -0,0 +1,19 @@
+use strict;
+use warnings;
+##
+# Write a script to display the first 20 Leonardo Numbers.
+##
+use constant NUMBERS => 20;
+my $numbers = NUMBERS;
+my @leonardo = (1, 1);
+while($numbers){
+ if((NUMBERS - $numbers) < 2){
+ print "L(" . (NUMBERS - $numbers) . ") = " . $leonardo[-1] . "\n";
+ }
+ else{
+ my $leonardo = $leonardo[-1] + $leonardo[-2] + 1;
+ print "L(" . (NUMBERS - $numbers) . ") = $leonardo\n";
+ push @leonardo, $leonardo;
+ }
+ $numbers--;
+}