Jump to content

Prime words: Difference between revisions

→‎{{header|Raku}}: DRY, more concise
m (→‎{{header|Raku}}: typos, tweaks)
(→‎{{header|Raku}}: DRY, more concise)
Line 253:
 
<lang perl6>my @words = 'unixdict.txt'.IO.words».fc;
 
sub display ($n, @n, $s = "First 20: ") {"$n;\n{$s}{@n.join: ', '}"}
 
say 'Number of words whose ords are all prime: ',
@words.hyper.mapgrep({ next unless all(.comb.».ord).is-prime; $_ }).&{"{display +$_};\n{.join:, '$_, '}"'};
 
say "\nNumber of words whose ordinal sum is prime: ",
@words.mapgrep({ $_ if .comb».ord.sum.is-prime }).&{"{display +$_};\nFirst 20: {,.head(20).join: ', '} ..."};
 
say "\n\nInterpretingnIterpreting the words as if they were base 36 numbers:";
 
say "\nNumber of words that are prime in base 36: ",
@words.mapgrep({ next if !.contains(/\W/); $_ if&& :36($_).is-prime }).&{"{display +$_};\nFirst 20: {,.head(20).join: ', '} ..."};
 
say "\nNumber of words whose base 36 digital sum is prime: ",
@words.mapgrep({ next if !.contains(/\W/); $_ if&& .comb».parse-base(36).sum.is-prime }).&{"{display +$_};\nFirst 20: {,.head(20).join: ', '} ..."};
 
use Base::Any:ver<0.1.2>;
Line 274 ⟶ 276:
 
say "\nNumber of words whose 'digits' are all prime using a custom base: ",
@words.hyper.mapgrep({ next if !.contains(/<-alpha>/); $_ if&& all(.comb».&from-base(26)).is-prime }).&{"{display +$_};\n{.join:, '$_, '}"'};
 
say "\nNumber of words that are prime using a custom base: ",
@words.mapgrep({ next if !.contains(/<-alpha>/); $_ if&& .&from-base(26).is-prime }).&{"{display +$_};\nFirst 20: {,.head(20).join: ', '} ..."};
 
say "\nNumber of words whose digital sum is prime using a custom base: ",
@words.mapgrep({ next if !.contains(/<-alpha>/); $_ if&& .comb».&from-base(26).sum.is-prime }).&{"{display +$_};\nFirst 20: {,.head(20).join: ', '} ..."};</lang>
{{out}}
<pre>Number of words whose ords are all prime: 36;
10,333

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.