diff options
| author | Flavio Poletti <flavio@polettix.it> | 2021-11-19 19:37:44 +0100 |
|---|---|---|
| committer | Flavio Poletti <flavio@polettix.it> | 2021-11-19 19:37:44 +0100 |
| commit | b852eaaa8f84d9e898150012300cdda03d680c36 (patch) | |
| tree | 6b4d80f8142eacf5bf048afdb72331269d2b0568 | |
| parent | dad6fd61a1ca0ef26a9cec0b65963aeb2d5ad704 (diff) | |
| download | perlweeklychallenge-club-b852eaaa8f84d9e898150012300cdda03d680c36.tar.gz perlweeklychallenge-club-b852eaaa8f84d9e898150012300cdda03d680c36.tar.bz2 perlweeklychallenge-club-b852eaaa8f84d9e898150012300cdda03d680c36.zip | |
Add polettix's solution to challenge-139
| -rw-r--r-- | challenge-139/polettix/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-139/polettix/blog1.txt | 1 | ||||
| -rw-r--r-- | challenge-139/polettix/perl/ch-1.pl | 10 | ||||
| -rw-r--r-- | challenge-139/polettix/perl/ch-2.pl | 25 | ||||
| -rw-r--r-- | challenge-139/polettix/raku/ch-1.raku | 4 | ||||
| -rw-r--r-- | challenge-139/polettix/raku/ch-2.raku | 19 |
6 files changed, 60 insertions, 0 deletions
diff --git a/challenge-139/polettix/blog.txt b/challenge-139/polettix/blog.txt new file mode 100644 index 0000000000..f5118de7fb --- /dev/null +++ b/challenge-139/polettix/blog.txt @@ -0,0 +1 @@ +https://github.polettix.it/ETOOBUSY/2021/11/17/jortsort/ diff --git a/challenge-139/polettix/blog1.txt b/challenge-139/polettix/blog1.txt new file mode 100644 index 0000000000..57fd0fb0c8 --- /dev/null +++ b/challenge-139/polettix/blog1.txt @@ -0,0 +1 @@ +https://github.polettix.it/ETOOBUSY/2021/11/18/long-primes/ diff --git a/challenge-139/polettix/perl/ch-1.pl b/challenge-139/polettix/perl/ch-1.pl new file mode 100644 index 0000000000..2079bcb96c --- /dev/null +++ b/challenge-139/polettix/perl/ch-1.pl @@ -0,0 +1,10 @@ +#!/usr/bin/env perl +use v5.24; +use warnings; +use experimental 'signatures'; +no warnings 'experimental::signatures'; +say jort_sort(@ARGV) ? 1 : 0; +sub jort_sort (@args) { + for (sort @args) { return 0 unless $_ == shift @args } + return 1 +} diff --git a/challenge-139/polettix/perl/ch-2.pl b/challenge-139/polettix/perl/ch-2.pl new file mode 100644 index 0000000000..2cfbb957e4 --- /dev/null +++ b/challenge-139/polettix/perl/ch-2.pl @@ -0,0 +1,25 @@ +#!/usr/bin/env perl +use v5.24; +use warnings; +use experimental 'signatures'; +no warnings 'experimental::signatures'; +my $N = shift || 5; +my $p = 2; +while ($N > 0) { + if (is_long_prime($p)) { + say $p; + --$N; + } + $p++; +} +sub is_prime ($n) { + for (2 .. sqrt $n) { return unless $n % $_ } + return 1; +} +sub is_long_prime ($n) { + return unless (10 % $n) && is_prime($n); + my $num = 1 . '0' x length($n); + my %seen; + $num = 10 * ($num % $n) while ! $seen{$num}++; + return $n - 1 == scalar keys %seen; +} diff --git a/challenge-139/polettix/raku/ch-1.raku b/challenge-139/polettix/raku/ch-1.raku new file mode 100644 index 0000000000..843a5bd392 --- /dev/null +++ b/challenge-139/polettix/raku/ch-1.raku @@ -0,0 +1,4 @@ +#!/usr/bin/env raku +use v6; +sub MAIN (*@args) { say jort-sort(@args) ?? 1 !! 0 } +sub jort-sort (@args) { @args.sort ~~ @args } diff --git a/challenge-139/polettix/raku/ch-2.raku b/challenge-139/polettix/raku/ch-2.raku new file mode 100644 index 0000000000..92283b00dd --- /dev/null +++ b/challenge-139/polettix/raku/ch-2.raku @@ -0,0 +1,19 @@ +#!/usr/bin/env raku +use v6; +sub MAIN (Int $N is copy = 5) { + my $p = 2; + while ($N > 0) { + if (is-long-prime($p)) { + $p.put; + --$N; + } + $p++; + } +} +sub is-long-prime (Int:D $n where * > 0) { + return False unless (10 % $n) && $n.is-prime; + my $num = 1 ~ 0 x $n.chars; + my %seen; + $num = 10 * ($num % $n) while ! %seen{$num}++; + return $n - 1 == %seen.elems; +} |
