Sexy primes: Difference between revisions

→‎{{header|Perl 6}}: Better categorize logic, faster filtering. Also move alert box to last unmodified entry
(Added Kotlin)
(→‎{{header|Perl 6}}: Better categorize logic, faster filtering. Also move alert box to last unmodified entry)
Line 1:
{{draft task}}
{{Wikipedia|Sexy_prime}}
 
{{alertbox|pink|Note: the task requirements have changed for reasons found on the discussion page. Please update tasks to meet the updated requirements.}}
 
 
 
Line 578 ⟶ 575:
 
my $max = 1_000_035;
my %@primes = $sieve.primes($max) X=> 1;
 
my $primesfiter = %@primes.keys.categorize: { .&sexy }Set;
my $primes = @primes.categorize: { .&sexy }
 
say "Total primes less than {comma $max}: ", comma +%@primes.keys;
 
for <pair 2 triplet 3 quadruplet 4 quintuplet 5> -> $sexy, $cnt {
say "Number of sexy prime {$sexy}s less than {comma $max}: ", comma +$primes{$sexy};
say " Last 5 sexy prime {$sexy}s less than {comma $max}: ",
join ' ', $primes{$sexy}.sort(+*).tail(5).grep(*.defined).map:
{ "({ $_ «+« (0,6 … 24)[^$cnt] })" }
say '';
Line 593 ⟶ 591:
 
say "Number of unsexy primes less than {comma $max}: ", comma +$primes<unsexy>;
say " Last 10 unsexy primes less than {comma $max}: ", $primes<unsexy>.sort(+*).tail(10);
 
sub sexy ($i) {
(gather {
(sotake 'quintuplet' if all(%primes$fiter{$i «+« (6,12,18,24)})) ?? 'quintuplet' !! Nil,;
(sotake 'quadruplet' if all(%primes$fiter{$i «+« (6,12,18) })) ?? 'quadruplet' !! Nil,;
(sotake 'triplet' if all(%primes$fiter{$i «+« (6,12) })) ?? 'triplet' !! Nil,;
(sotake 'pair' %primes if $fiter{$i + 6 }) ?? 'pair' !! Nil,;
take ((($i >= $max - 6) && ($i + 6).is-prime)) ||
(so any(%primes$fiter{$i «+« (6, -6) })) ?? 'sexy' !! 'unsexy';
}
).grep: *.defined
}
 
Line 625 ⟶ 623:
 
=={{header|Python}}==
{{alertbox|pink|Note: the task requirements have changed for reasons found on the discussion page. Please update taskstask to meet the updated requirements.}}
<lang python>LIMIT = 1_000_000
def primes2(limit=LIMIT):
10,333

edits