Hex words: Difference between revisions

2,791 bytes added ,  2 years ago
Added Arturo implementation
(Added AutoHotkey)
(Added Arturo implementation)
Line 260:
Found 13 hex words with 4 or more distinct digits
</pre>
 
=={{header|Arturo}}==
 
<lang rebol>words: map read.lines relative "unixdict.txt" => strip
hexWords: new []
 
digRoot: function [num][
res: num
while [1 < size digits res][
res: sum digits res
]
return res
]
 
printTable: function [wrds][
print [pad.center "Root" 10 pad.right "Word" 10 pad "Base-10" 15]
print repeat "-" 38
loop wrds 'wrd [
print [pad.center to :string wrd\root 10 pad.right wrd\hex 10 pad to :string wrd\decimal 15]
]
print repeat "-" 38
print [" Total count:" size wrds "\n"]
]
 
loop words 'word [
if 4 > size word ->
continue
 
if not? empty? match word {/^[a-f]+$/} [
base10: from.hex word
droot: digRoot base10
'hexWords ++ #[
root: droot
hex: word
decimal: base10
]
]
]
 
printTable sort.by:'root hexWords
printTable sort.descending.by:'decimal select hexWords 'h ->
4 =< size unique split h\hex</lang>
 
{{out}}
 
<pre> Root Word Base-10
--------------------------------------
1 ababa 703162
1 abbe 43966
1 dada 56026
1 deaf 57007
1 decade 14600926
2 cede 52958
2 feed 65261
3 abed 44013
3 added 712173
3 bade 47838
4 beebe 782014
4 decca 912586
5 dade 56030
6 bead 48813
6 deface 14613198
7 babe 47806
7 fade 64222
8 dead 57005
8 efface 15727310
8 facade 16435934
9 accede 11325150
9 beef 48879
9 cafe 51966
9 dacca 896202
9 deed 57069
9 face 64206
--------------------------------------
Total count: 26
Root Word Base-10
--------------------------------------
8 facade 16435934
8 efface 15727310
6 deface 14613198
1 decade 14600926
9 accede 11325150
4 decca 912586
7 fade 64222
9 face 64206
1 deaf 57007
9 cafe 51966
6 bead 48813
3 bade 47838
3 abed 44013
--------------------------------------
Total count: 13</pre>
 
=={{header|AutoHotkey}}==
1,532

edits