diff options
| -rw-r--r-- | challenge-158/arne-sommer/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-158/arne-sommer/perl/additive-primes-perl | 27 | ||||
| -rwxr-xr-x | challenge-158/arne-sommer/perl/ch-1.pl | 27 | ||||
| -rwxr-xr-x | challenge-158/arne-sommer/perl/ch-2.pl | 25 | ||||
| -rwxr-xr-x | challenge-158/arne-sommer/perl/fscp-perl | 25 | ||||
| -rwxr-xr-x | challenge-158/arne-sommer/raku/additive-primes | 17 | ||||
| -rwxr-xr-x | challenge-158/arne-sommer/raku/additive-primes-seq | 7 | ||||
| -rwxr-xr-x | challenge-158/arne-sommer/raku/ch-1.raku | 17 | ||||
| -rwxr-xr-x | challenge-158/arne-sommer/raku/ch-2.raku | 17 | ||||
| -rwxr-xr-x | challenge-158/arne-sommer/raku/fscp | 17 | ||||
| -rwxr-xr-x | challenge-158/arne-sommer/raku/fscp-seq | 7 |
11 files changed, 187 insertions, 0 deletions
diff --git a/challenge-158/arne-sommer/blog.txt b/challenge-158/arne-sommer/blog.txt new file mode 100644 index 0000000000..4d597ba785 --- /dev/null +++ b/challenge-158/arne-sommer/blog.txt @@ -0,0 +1 @@ +https://raku-musings.com/cuban-addition.html diff --git a/challenge-158/arne-sommer/perl/additive-primes-perl b/challenge-158/arne-sommer/perl/additive-primes-perl new file mode 100755 index 0000000000..be2c81f2d9 --- /dev/null +++ b/challenge-158/arne-sommer/perl/additive-primes-perl @@ -0,0 +1,27 @@ +#! /usr/bin/env perl + +use strict; +use warnings; +use feature 'say'; +use feature 'state'; +use Math::Prime::Util 'is_prime'; +use List::Util 'sum'; + +my $limit = $ARGV[0] || 100; + +my @ap; + +while (1) +{ + state $current = 0; + + last if $current++ >= $limit; + next unless is_prime($current); + + my @digits = split(//, $current); + my $sum = sum(@digits); + + push(@ap, $current) if is_prime($sum); +} + +say join(", ", @ap); diff --git a/challenge-158/arne-sommer/perl/ch-1.pl b/challenge-158/arne-sommer/perl/ch-1.pl new file mode 100755 index 0000000000..be2c81f2d9 --- /dev/null +++ b/challenge-158/arne-sommer/perl/ch-1.pl @@ -0,0 +1,27 @@ +#! /usr/bin/env perl + +use strict; +use warnings; +use feature 'say'; +use feature 'state'; +use Math::Prime::Util 'is_prime'; +use List::Util 'sum'; + +my $limit = $ARGV[0] || 100; + +my @ap; + +while (1) +{ + state $current = 0; + + last if $current++ >= $limit; + next unless is_prime($current); + + my @digits = split(//, $current); + my $sum = sum(@digits); + + push(@ap, $current) if is_prime($sum); +} + +say join(", ", @ap); diff --git a/challenge-158/arne-sommer/perl/ch-2.pl b/challenge-158/arne-sommer/perl/ch-2.pl new file mode 100755 index 0000000000..4cde38a5de --- /dev/null +++ b/challenge-158/arne-sommer/perl/ch-2.pl @@ -0,0 +1,25 @@ +#! /usr/bin/env perl + +use strict; +use warnings; +use feature 'say'; +use feature 'state'; +use Math::Prime::Util 'is_prime'; +use List::Util 'sum'; + +my $limit = $ARGV[0] || 1000; + +my @fscp; + +while (1) +{ + state $current = 0; + + my $mapped = 3 * $current ** 2 + 3 * $current++ + 1; + + last if $mapped >= $limit; + + push(@fscp, $mapped) if is_prime($mapped); +} + +say join(", ", @fscp); diff --git a/challenge-158/arne-sommer/perl/fscp-perl b/challenge-158/arne-sommer/perl/fscp-perl new file mode 100755 index 0000000000..4cde38a5de --- /dev/null +++ b/challenge-158/arne-sommer/perl/fscp-perl @@ -0,0 +1,25 @@ +#! /usr/bin/env perl + +use strict; +use warnings; +use feature 'say'; +use feature 'state'; +use Math::Prime::Util 'is_prime'; +use List::Util 'sum'; + +my $limit = $ARGV[0] || 1000; + +my @fscp; + +while (1) +{ + state $current = 0; + + my $mapped = 3 * $current ** 2 + 3 * $current++ + 1; + + last if $mapped >= $limit; + + push(@fscp, $mapped) if is_prime($mapped); +} + +say join(", ", @fscp); diff --git a/challenge-158/arne-sommer/raku/additive-primes b/challenge-158/arne-sommer/raku/additive-primes new file mode 100755 index 0000000000..56f2b7a60c --- /dev/null +++ b/challenge-158/arne-sommer/raku/additive-primes @@ -0,0 +1,17 @@ +#! /usr/bin/env raku + +unit sub MAIN (UInt $limit = 100); + +my $ap := (1..Inf).grep( { .is-prime && .comb.sum.is-prime } ); + +my @ap; + +loop +{ + state $index = 0; + my $current = $ap[$index++]; + last if $current > $limit; + @ap.push: $current; +} + +@ap.join(", ").say; diff --git a/challenge-158/arne-sommer/raku/additive-primes-seq b/challenge-158/arne-sommer/raku/additive-primes-seq new file mode 100755 index 0000000000..17c2eee0fd --- /dev/null +++ b/challenge-158/arne-sommer/raku/additive-primes-seq @@ -0,0 +1,7 @@ +#! /usr/bin/env raku + +unit sub MAIN (Int $length where $length > 0 = 10); + +my $ap := (1..Inf).grep( *.is-prime ).grep( *.comb.sum.is-prime ); + +$ap.head($length).join(", ").say; diff --git a/challenge-158/arne-sommer/raku/ch-1.raku b/challenge-158/arne-sommer/raku/ch-1.raku new file mode 100755 index 0000000000..56f2b7a60c --- /dev/null +++ b/challenge-158/arne-sommer/raku/ch-1.raku @@ -0,0 +1,17 @@ +#! /usr/bin/env raku + +unit sub MAIN (UInt $limit = 100); + +my $ap := (1..Inf).grep( { .is-prime && .comb.sum.is-prime } ); + +my @ap; + +loop +{ + state $index = 0; + my $current = $ap[$index++]; + last if $current > $limit; + @ap.push: $current; +} + +@ap.join(", ").say; diff --git a/challenge-158/arne-sommer/raku/ch-2.raku b/challenge-158/arne-sommer/raku/ch-2.raku new file mode 100755 index 0000000000..dc6a015865 --- /dev/null +++ b/challenge-158/arne-sommer/raku/ch-2.raku @@ -0,0 +1,17 @@ +#! /usr/bin/env raku + +unit sub MAIN (UInt $limit = 1000); + +my $fscp := (1..Inf).map( { 3 * $_ ** 2 + 3 * $_ + 1 } ).grep( *.is-prime ); + +my @fscp; + +loop +{ + state $index = 0; + my $current = $fscp[$index++]; + last if $current > $limit; + @fscp.push: $current; +} + +@fscp.join(", ").say; diff --git a/challenge-158/arne-sommer/raku/fscp b/challenge-158/arne-sommer/raku/fscp new file mode 100755 index 0000000000..dc6a015865 --- /dev/null +++ b/challenge-158/arne-sommer/raku/fscp @@ -0,0 +1,17 @@ +#! /usr/bin/env raku + +unit sub MAIN (UInt $limit = 1000); + +my $fscp := (1..Inf).map( { 3 * $_ ** 2 + 3 * $_ + 1 } ).grep( *.is-prime ); + +my @fscp; + +loop +{ + state $index = 0; + my $current = $fscp[$index++]; + last if $current > $limit; + @fscp.push: $current; +} + +@fscp.join(", ").say; diff --git a/challenge-158/arne-sommer/raku/fscp-seq b/challenge-158/arne-sommer/raku/fscp-seq new file mode 100755 index 0000000000..a1ac67de71 --- /dev/null +++ b/challenge-158/arne-sommer/raku/fscp-seq @@ -0,0 +1,7 @@ +#! /usr/bin/env raku + +unit sub MAIN (UInt $length = 10); + +my $fscp := (1..Inf).map( { 3 * $_ ** 2 + 3 * $_ + 1 } ).grep( *.is-prime ); + +$fscp.head($length).join(", ").say; |
