From fc3feb0bfe62987c4d345ca3d23cefcc4e100a05 Mon Sep 17 00:00:00 2001 From: Adam Russell Date: Sun, 5 Jan 2020 16:37:23 -0500 Subject: solutions for challenge 041 --- challenge-041/adam-russell/blog.txt | 1 + challenge-041/adam-russell/perl/ch-1.pl | 23 +++++++++++++++++++++++ challenge-041/adam-russell/perl/ch-2.pl | 19 +++++++++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 challenge-041/adam-russell/blog.txt create mode 100644 challenge-041/adam-russell/perl/ch-1.pl create mode 100644 challenge-041/adam-russell/perl/ch-2.pl 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--; +} -- cgit