Prime words: Difference between revisions
(added a ;Task; and which dictionary to use.) |
|||
Line 18: | Line 18: | ||
'''y''' ASCII decimal code is: '''121''' |
'''y''' ASCII decimal code is: '''121''' |
||
'''z''' ASCII decimal code is: '''122''' |
'''z''' ASCII decimal code is: '''122''' |
||
;Task: |
|||
Show here on this page every ''prime word'' in [https://web.archive.org/web/20180611003215/http://www.puzzlers.org/pub/wordlists/unixdict.txt unixdict.txt]. |
|||
<br><br> |
<br><br> |
Revision as of 12:41, 4 December 2020
A word is a prime word if all its individual letters (expressed as an ASCII decimal code) are primes.
A ASCII decimal code is: 65 B ASCII decimal code is: 66 C ASCII decimal code is: 67 X ASCII decimal code is: 88 Y ASCII decimal code is: 89 Z ASCII decimal code is: 90 a ASCII decimal code is: 97 b ASCII decimal code is: 98 c ASCII decimal code is: 99 x ASCII decimal code is: 120 y ASCII decimal code is: 121 z ASCII decimal code is: 122
- Task
Show here on this page every prime word in unixdict.txt.
REXX
<lang rexx>/*REXX pg finds words whose ASCI code for its letters (within an identified dictionary).*/ parse arg iFID . /*obtain optional arguments from the CL*/ if iFID== | iFID=="," then iFID='unixdict.txt' /*Not specified? Then use the default.*/ call genPrimes /*generate all primes less than 256. */ say 'reading the dictionary file: ' iFID /*show which dictionary is being read. */ say
- = 0 /*count of prime words found (so far).*/
do recs=0 while lines(iFID)\==0 /*read each word in the file (word=X).*/ x= strip( linein( iFID) ) /*pick off a word from the input line. */
do j=1 for length(x) /*examine each letter (char) in word. */ _= c2d( substr(x, j, 1) ) /*convert each letter to a decimal num.*/ if \@._ then iterate recs /*is this ASCII code letter a prime ? */ end /*j*/ say x /*display a prime word to the terminal.*/ #= # + 1 /*bump the count of prime words. */ end /*recs*/ /* [↑] semaphore name is uppercased. */
say say copies('─', 30) recs "usable words in the dictionary file: " iFID say 'found ' # " prime words in the dictionary." exit 0 /*stick a fork in it, we're all done. */ /*──────────────────────────────────────────────────────────────────────────────────────*/ genPrimes: p= 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 ,
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</lang>
- output when using the default input:
reading the dictionary file: unixdict.txt a aaa age agee ak am ama e egg eke em emma g ga gag gage gam game gamma ge gee gem gemma gm k keg m ma mae magma make mamma me meek meg q ────────────────────────────── 25104 usable words in the dictionary file: unixdict.txt found 36 prime words in the dictionary.
Ring
<lang ring> load "stdlib.ring"
cStr = read("unixdict.txt") wordList = str2list(cStr) Words = []
for n = 1 to len(wordList)
num = 0 len = len(wordList[n]) for m = 1 to len asc = ascii(wordList[n][m]) if isprime(asc) num = num + 1 else exit ok next if num = len add(Words,wordList[n]) ok
next
see "Prime words are:" + nl see Words </lang> Output:
Prime words are: a aaa age agee ak am ama e egg eke em emma g ga gag gage gam game gamma ge gee gem gemma gm k keg m ma mae magma make mamma me meek meg q