diff options
| author | Adam Russell <ac.russell@live.com> | 2021-11-21 16:46:32 -0500 |
|---|---|---|
| committer | Adam Russell <ac.russell@live.com> | 2021-11-21 16:46:32 -0500 |
| commit | 53b8d69d4ab4f2d05b2a2c06990ec56c5d200311 (patch) | |
| tree | 9f5dbb4e66c30b4c5ee62198fa0168c821fed564 | |
| parent | ea83790fdf3c76091e38faaf27cade5240780104 (diff) | |
| download | perlweeklychallenge-club-53b8d69d4ab4f2d05b2a2c06990ec56c5d200311.tar.gz perlweeklychallenge-club-53b8d69d4ab4f2d05b2a2c06990ec56c5d200311.tar.bz2 perlweeklychallenge-club-53b8d69d4ab4f2d05b2a2c06990ec56c5d200311.zip | |
initial commit
| -rw-r--r-- | challenge-139/adam-russell/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-139/adam-russell/blog1.txt | 1 | ||||
| -rw-r--r-- | challenge-139/adam-russell/perl/ch-1.pl | 18 | ||||
| -rw-r--r-- | challenge-139/adam-russell/perl/ch-2.pl | 67 | ||||
| -rw-r--r-- | challenge-139/adam-russell/prolog/ch-1.p | 15 |
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 |
