Prime words: Difference between revisions
m
syntax highlighting fixup automation
(J) |
Thundergnat (talk | contribs) m (syntax highlighting fixup automation) |
||
Line 24:
<br><br>
=={{header|11l}}==
<
I a == 2
R 1B
Line 47:
L.break
L.was_no_break
print(word)</
{{out}}
Line 92:
In the following solution the input file is loaded from H6 drive. Altirra emulator automatically converts CR/LF character from ASCII into 155 character in ATASCII charset used by Atari 8-bit computer when one from H6-H10 hard drive under DOS 2.5 is used.
{{libheader|Action! Sieve of Eratosthenes}}
<
BYTE FUNC IsPrimeWord(CHAR ARRAY word BYTE ARRAY primes)
Line 136:
Sieve(primes,MAX+1)
FindPrimeWords(fname,primes)
RETURN</
{{out}}
[https://gitlab.com/amarok8bit/action-rosetta-code/-/raw/master/images/Prime_words.png Screenshot from Atari 8-bit computer]
Line 146:
Does not distinguish between letters and non-letter ASCII codes (as with the REXX sample).
{{libheader|ALGOL 68-primes}}
<
IF FILE input file;
STRING file name = "unixdict.txt";
Line 183:
OD;
close( input file )
FI</
{{out}}
<pre>
Line 226:
=={{header|Arturo}}==
<
loop words 'word [
if every? split word 'ch -> prime? to :integer to :char ch ->
print word
]</
{{out}}
Line 273:
=={{header|AWK}}==
<syntaxhighlight lang="awk">
# syntax: GAWK -f PRIME_WORDS.AWK unixdict.txt
BEGIN {
Line 302:
return(1)
}
</syntaxhighlight>
{{out}}
<pre>
Line 309:
=={{header|C++}}==
<
#include <cstdlib>
#include <fstream>
Line 338:
}
return EXIT_SUCCESS;
}</
Contents of prime_sieve.hpp:
<
#define PRIME_SIEVE_HPP
Line 392:
}
#endif</
{{out}}
Line 409:
=={{header|Factor}}==
{{works with|Factor|0.99 2020-08-14}}
<
"unixdict.txt" ascii file-lines [ [ prime? ] all? ] filter .</
{{out}}
<pre style="height: 45ex">
Line 455:
=={{header|FreeBASIC}}==
<
dim shared as boolean prime(0 to 29) =_
{false, true, false, true, true, false, false, true, false, true, false, false, true, false,_
Line 483:
close #1
end
</syntaxhighlight>
{{out}}
<pre>
Line 524:
=={{header|Go}}==
<
import (
Line 587:
}
}
}</
{{out}}
Line 631:
=={{header|J}}==
<
┌─────┬───┬─────┬────┬─────┬───┬────┬───┬────┐
│a │aaa│age │agee│ak │am │ama │e │egg │
Line 640:
├─────┼───┼─────┼────┼─────┼───┼────┼───┼────┤
│ma │mae│magma│make│mamma│me │meek│meg│q │
└─────┴───┴─────┴────┴─────┴───┴────┴───┴────┘</
=={{header|jq}}==
Line 652:
definition of `is_prime_word` should focus on the alphabetic characters,
perhaps along the lines of:
<
</syntaxhighlight>
All such variations are as easy to accommodate as to envision, but for unixdict.txt the following suffices:
<
<syntaxhighlight lang="jq">
inputs | select(is_prime_word)</
{{out}}
Invocation (example): jq -Rrn -f prime-words.jq unixdict.txt
Line 701:
=={{header|Julia}}==
See [[Alternade_words#Julia]] for the foreachword function.
<
isprimeword(w, _) = all(c -> Int(c) in primelettervalues, collect(w)) ? w : ""
foreachword("unixdict.txt", isprimeword, colwidth=10, numcols=9)
</
<pre>
Word source: unixdict.txt
Line 715:
=={{header|Mathematica}}/{{header|Wolfram Language}}==
<
dict//=StringSplit[#,"\n"]&;
chars=CharacterRange["A","Z"]~Join~CharacterRange["a","z"];
chars//=Select[ToCharacterCode/*First/*PrimeQ];
Select[dict,StringMatchQ[Repeated[Alternatives@@chars]]]//Column</
{{out}}
<pre>a
Line 759:
=={{header|Nim}}==
<
func isPrime(n: Natural): bool =
Line 784:
if word.allCharsInSet(PrimeChars):
inc count
echo &"{count:2}: {word}"</
{{out}}
Line 825:
=={{header|Perl}}==
<
use strict;
Line 832:
my $pat = join '', grep +(1 x ord) !~ /^(11+)\1+$/, 'a'..'z', 'A'..'Z';
@ARGV = 'unixdict.txt';
print join('', grep /^[$pat]+$/, <>) =~ tr/\n/ /r =~ s/.{1,71}\K /\n/gr;</
{{out}}
<pre>
Line 840:
=={{header|Phix}}==
<!--<
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
<span style="color: #008080;">function</span> <span style="color: #000000;">sap</span><span style="color: #0000FF;">(</span><span style="color: #004080;">string</span> <span style="color: #000000;">word</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">return</span> <span style="color: #7060A8;">sum</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">apply</span><span style="color: #0000FF;">(</span><span style="color: #000000;">word</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">is_prime</span><span style="color: #0000FF;">))==</span><span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">word</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
<span style="color: #004080;">sequence</span> <span style="color: #000000;">words</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">filter</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">unix_dict</span><span style="color: #0000FF;">(),</span><span style="color: #000000;">sap</span><span style="color: #0000FF;">)</span>
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"%d prime words found: %s\n"</span><span style="color: #0000FF;">,{</span><span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">words</span><span style="color: #0000FF;">),</span><span style="color: #7060A8;">join</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">shorten</span><span style="color: #0000FF;">(</span><span style="color: #000000;">words</span><span style="color: #0000FF;">,</span><span style="color: #008000;">""</span><span style="color: #0000FF;">,</span><span style="color: #000000;">3</span><span style="color: #0000FF;">),</span><span style="color: #008000;">", "</span><span style="color: #0000FF;">)})</span>
<!--</
{{out}}
<pre>
Line 852:
=={{header|Plain English}}==
<
Start up.
Put "c:\unixdict.txt" into a path.
Line 877:
If the substring's first's target is not prime, say no.
Add 1 to the substring's first.
Repeat.</
{{out}}
<pre style="height:18em">
Line 922:
Here is the brute force pre-processor, again this can be done easily manually, but if you are feeling lazy, like me :)
<syntaxhighlight lang="python">
for i in range(65,123):
check = 1
Line 930:
if check==1:
print(chr(i),end='')
</syntaxhighlight>
This produces the following string :
Line 944:
Tested on Python 3+, the file download will work only if the link is still active. It is possible that you may be able to fetch the file in your browser but download via code may still fail. Check whether you are connected to a VPN, it works on open networks.
<syntaxhighlight lang="python">
#Aamrun, 6th November 2021
Line 961:
[print(word) for word in wordList if len(set(word).difference(primeSet))==0]
</syntaxhighlight>
And here's the final output :
Line 1,011:
In an effort to anticipate / head-off a rash of tiny variant tasks, a series of one-liners:
<syntaxhighlight lang="raku"
sub display ($n, @n, $s = "First 20: ") {"$n;\n{$s}{@n.join: ', '}"}
Line 1,061:
say "\nNumber of words that are prime in custom base 26, whose digits are all prime, and whose digital sum is prime: ",
@words.hyper.grep({ !.contains(/<-alpha>/) && all(.comb».&from-base(26)).is-prime && .&from-base(26).is-prime && .comb».&from-base(26).sum.is-prime }).&{display +$_, $_, ''};</
{{out}}
<pre>Number of words whose ords are all prime: 36;
Line 1,110:
=={{header|REXX}}==
No attempt was made to exclude any "word" if it contained any non-letter (Latin alphabet) characters.
<
parse arg iFID . /*obtain optional arguments from the CL*/
if iFID=='' | iFID=="," then iFID='unixdict.txt' /*Not specified? Then use the default.*/
Line 1,136:
67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 ,
157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251
@.= 0; do j=1 for words(p); _= word(p, j); @._= 1; end /*j*/; return</
{{out|output|text= when using the default input:}}
<pre>
Line 1,184:
=={{header|Ring}}==
<
load "stdlib.ring"
Line 1,209:
see "Prime words are:" + nl
see Words
</syntaxhighlight>
Output:
<pre>
Line 1,252:
=={{header|Ruby}}==
<
puts File.open("unixdict.txt").select{|line| line.chomp.chars.all?{|c| c.ord.prime?} }
</syntaxhighlight>
{{out}}
<pre>a
Line 1,296:
=={{header|Rust}}==
<
// primal = "0.3"
Line 1,324:
Err(error) => eprintln!("{}", error),
}
}</
{{out}}
Line 1,340:
=={{header|Swift}}==
<
class BitArray {
Line 1,409:
} catch {
print(error.localizedDescription)
}</
{{out}}
Line 1,454:
{{libheader|Wren-math}}
{{libheader|Wren-trait}}
<
import "/math" for Int
import "/trait" for Stepped
Line 1,468:
for (word in words) {
if (word.all { |c| primeChars.contains(c) }) System.print(word)
}</
{{out}}
Line 1,512:
=={{header|XPL0}}==
<
int N, I;
[if N <= 2 then return N = 2;
Line 1,544:
];
until Ch = EOF;
]</
{{out}}
|