aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Russell <ac.russell@live.com>2021-11-21 16:46:32 -0500
committerAdam Russell <ac.russell@live.com>2021-11-21 16:46:32 -0500
commit53b8d69d4ab4f2d05b2a2c06990ec56c5d200311 (patch)
tree9f5dbb4e66c30b4c5ee62198fa0168c821fed564
parentea83790fdf3c76091e38faaf27cade5240780104 (diff)
downloadperlweeklychallenge-club-53b8d69d4ab4f2d05b2a2c06990ec56c5d200311.tar.gz
perlweeklychallenge-club-53b8d69d4ab4f2d05b2a2c06990ec56c5d200311.tar.bz2
perlweeklychallenge-club-53b8d69d4ab4f2d05b2a2c06990ec56c5d200311.zip
initial commit
-rw-r--r--challenge-139/adam-russell/blog.txt1
-rw-r--r--challenge-139/adam-russell/blog1.txt1
-rw-r--r--challenge-139/adam-russell/perl/ch-1.pl18
-rw-r--r--challenge-139/adam-russell/perl/ch-2.pl67
-rw-r--r--challenge-139/adam-russell/prolog/ch-1.p15
5 files changed, 102 insertions, 0 deletions
diff --git a/challenge-139/adam-russell/blog.txt b/challenge-139/adam-russell/blog.txt
new file mode 100644
index 0000000000..fd658b2662
--- /dev/null
+++ b/challenge-139/adam-russell/blog.txt
@@ -0,0 +1 @@
+http://www.rabbitfarm.com/cgi-bin/blosxom/2021/11/21/perl/
diff --git a/challenge-139/adam-russell/blog1.txt b/challenge-139/adam-russell/blog1.txt
new file mode 100644
index 0000000000..2a0dc6d2d8
--- /dev/null
+++ b/challenge-139/adam-russell/blog1.txt
@@ -0,0 +1 @@
+http://www.rabbitfarm.com/cgi-bin/blosxom/2021/11/21/prolog/
diff --git a/challenge-139/adam-russell/perl/ch-1.pl b/challenge-139/adam-russell/perl/ch-1.pl
new file mode 100644
index 0000000000..52d2e3d670
--- /dev/null
+++ b/challenge-139/adam-russell/perl/ch-1.pl
@@ -0,0 +1,18 @@
+use strict;
+use warnings;
+##
+# Implement JortSort
+##
+use boolean;
+
+sub jort_sort{
+ for(my $i=0; $i < @_ - 1; $i++){
+ return false if $_[$i + 1] < $_[$i];
+ }
+ return true;
+}
+
+MAIN:{
+ print jort_sort(1, 2, 3, 4, 5) . "\n";
+ print jort_sort(1, 3, 2, 4, 5) . "\n";
+}
diff --git a/challenge-139/adam-russell/perl/ch-2.pl b/challenge-139/adam-russell/perl/ch-2.pl
new file mode 100644
index 0000000000..1c61e7f210
--- /dev/null
+++ b/challenge-139/adam-russell/perl/ch-2.pl
@@ -0,0 +1,67 @@
+use strict;
+use warnings;
+##
+# Write a script to generate the first 5 Long Primes.
+##
+use boolean;
+use LWP::UserAgent;
+use constant PRIME_URL => "http://primes.utm.edu/lists/small/100000.txt";
+
+sub get_primes{
+ my @primes;
+ my $ua = new LWP::UserAgent(
+ ssl_opts => {verify_hostname => 0}
+ );
+ my $response = $ua->get(PRIME_URL);
+ my @lines = split(/\n/,$response->decoded_content);
+ foreach my $line (@lines){
+ my @p = split(/\s+/, $line);
+ unless(@p < 10){
+ push @primes, @p[1..(@p - 1)];
+ }
+ }
+ return @primes;
+}
+
+sub divide{
+ my($n, $d) = @_;
+ my @remainders;
+ my $q = (int($n / $d)) . ".";
+ my $r = $n % $d;
+ push @remainders, $r;
+ my @a;
+ for (0 .. $d){
+ $q .= int($r*10 / $d);
+ $r = $r*10 % $d;
+ @a = grep { $remainders[$_] == $r } (0 .. @remainders - 1);
+ last if(@a);
+ push @remainders, $r;
+ }
+ my $r_i = $a[0];
+ my $i = index($q, ".");
+ my $decimal_part = substr($q, $i+1);
+ return substr($q, 0, $i + 1) . substr($decimal_part, 0, $r_i) . "(" . substr($q, $i + $r_i + 1) . ")";
+}
+
+sub long_primes_five{
+ my @long_primes;
+ my @primes = get_primes();
+ do{
+ my $prime = shift @primes;
+ my $max_repetend = $prime - 1;
+ my $repeats = true if($prime != 2 && $prime != 5);
+ if($repeats){
+ my $x = divide(1, $prime, [], []);
+ $x =~ m/\((\d+)\)/;
+ my $repetend = $1;
+ push @long_primes, [$prime, $x] if length($repetend) == $prime - 1;
+ }
+ }while(@long_primes < 5);
+ return @long_primes;
+}
+
+MAIN:{
+ for my $p (long_primes_five()){
+ print $p->[0] . "\t" . $p->[1] . "\n";
+ }
+}
diff --git a/challenge-139/adam-russell/prolog/ch-1.p b/challenge-139/adam-russell/prolog/ch-1.p
new file mode 100644
index 0000000000..c65127be1f
--- /dev/null
+++ b/challenge-139/adam-russell/prolog/ch-1.p
@@ -0,0 +1,15 @@
+:-initialization(main).
+
+jort([]).
+jort([H0, H1|[]]):-
+ H1 >= H0.
+jort([H0, H1|T]):-
+ H1 >= H0,
+ jort([H1|T]).
+
+main:-
+ (jort([1, 2, 3, 4, 5]), format("1~n", _); format("0~n", _)),
+ (jort([1, 3, 2, 4, 5]), format("1~n", _); format("0~n", _)),
+ (jort([1, 2, 3, 4, 5, 6]), format("1~n", _); format("0~n", _)),
+ halt.
+ \ No newline at end of file