diff options
| -rw-r--r-- | challenge-142/polettix/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-142/polettix/blog1.txt | 1 | ||||
| -rw-r--r-- | challenge-142/polettix/perl/ch-1.pl | 14 | ||||
| -rw-r--r-- | challenge-142/polettix/perl/ch-2.pl | 14 | ||||
| -rw-r--r-- | challenge-142/polettix/raku/ch-1.raku | 13 | ||||
| -rw-r--r-- | challenge-142/polettix/raku/ch-2.raku | 5 |
6 files changed, 48 insertions, 0 deletions
diff --git a/challenge-142/polettix/blog.txt b/challenge-142/polettix/blog.txt new file mode 100644 index 0000000000..367b2231cf --- /dev/null +++ b/challenge-142/polettix/blog.txt @@ -0,0 +1 @@ +https://github.polettix.it/ETOOBUSY/2021/12/08/pwc142-divisor-last-digit/ diff --git a/challenge-142/polettix/blog1.txt b/challenge-142/polettix/blog1.txt new file mode 100644 index 0000000000..9a515bb9c9 --- /dev/null +++ b/challenge-142/polettix/blog1.txt @@ -0,0 +1 @@ +https://github.polettix.it/ETOOBUSY/2021/12/09/pwc142-sleep-sort/ diff --git a/challenge-142/polettix/perl/ch-1.pl b/challenge-142/polettix/perl/ch-1.pl new file mode 100644 index 0000000000..3fd5d28ac3 --- /dev/null +++ b/challenge-142/polettix/perl/ch-1.pl @@ -0,0 +1,14 @@ +#!/usr/bin/env perl +use v5.24; +use warnings; +use experimental 'signatures'; +no warnings 'experimental::signatures'; + +sub divisors_for ($n) { + keys %{{map { $_ => 1, int($n / $_) => 1 } grep { !($n % $_) } + 1 .. sqrt($n)}}; +} + +my $m = shift // 24; +my $n = shift // 2; +say scalar [grep { substr($_, -1, 1) == $n } divisors_for($m)]->@*; diff --git a/challenge-142/polettix/perl/ch-2.pl b/challenge-142/polettix/perl/ch-2.pl new file mode 100644 index 0000000000..dbfb883488 --- /dev/null +++ b/challenge-142/polettix/perl/ch-2.pl @@ -0,0 +1,14 @@ +#!/usr/bin/env perl +use v5.24; +use warnings; +use experimental 'signatures'; +no warnings 'experimental::signatures'; + +for my $n (@ARGV) { + defined(my $pid = fork()) or die "fork(): $!\n"; + next if $pid; + sleep $n; + say $n; + exit 0; +} +wait for 1 .. @ARGV; diff --git a/challenge-142/polettix/raku/ch-1.raku b/challenge-142/polettix/raku/ch-1.raku new file mode 100644 index 0000000000..25087256b2 --- /dev/null +++ b/challenge-142/polettix/raku/ch-1.raku @@ -0,0 +1,13 @@ +#!/usr/bin/env raku +use v6; +subset PosInt of Int where * > 0; +subset PosDigit of Int where 0 < * <= 9; + +sub divisors-for (PosInt:D $n) { + (1 .. $n.sqrt.Int).grep({$n %% $_}).map({$_, ($n / $_).Int}) + .flat.Set.keys; +} + +sub MAIN (PosInt:D $m = 24, PosDigit:D $n = 2) { + divisors-for($m).grep({.substr(*-1, 1) == $n}).elems.put; +} diff --git a/challenge-142/polettix/raku/ch-2.raku b/challenge-142/polettix/raku/ch-2.raku new file mode 100644 index 0000000000..0109ee4cd0 --- /dev/null +++ b/challenge-142/polettix/raku/ch-2.raku @@ -0,0 +1,5 @@ +#!/usr/bin/env raku +use v6; +sub MAIN (*@args) { + await @args.map: -> $x { Promise.in($x).then({$x.put}) } +} |
