Anaprimes: Difference between revisions
Content added Content deleted
(Added C++ solution) |
(→{{header|Wren}}: Better way of finding the anagrams - more than 3 times faster than before.) |
||
Line 284: | Line 284: | ||
=={{header|Wren}}== |
=={{header|Wren}}== |
||
{{libheader|Wren-math}} |
{{libheader|Wren-math}} |
||
{{libheader|Wren-sort}} |
|||
{{libheader|Wren-fmt}} |
{{libheader|Wren-fmt}} |
||
Getting up to 1 billion takes around 2 minutes 25 seconds on my Core i7 machine. I've left it at that. |
|||
I gave up after that. |
|||
<syntaxhighlight lang="ecmascript">import "./math" for Int |
<syntaxhighlight lang="ecmascript">import "./math" for Int |
||
import "./sort" for Sort |
|||
import "./fmt" for Fmt |
import "./fmt" for Fmt |
||
Line 295: | Line 292: | ||
var maxIndex = 8 |
var maxIndex = 8 |
||
var primes = Int.primeSieve(limit) |
var primes = Int.primeSieve(limit) |
||
var digPrimes = primes.take(10).toList |
|||
var anaprimes = {} |
var anaprimes = {} |
||
for (p in primes) { |
for (p in primes) { |
||
var |
var digs = Int.digits(p) |
||
⚫ | |||
⚫ | |||
for (dig in digs) key = key * digPrimes[dig] |
|||
⚫ | |||
⚫ | |||
⚫ | |||
} else { |
} else { |
||
anaprimes[ |
anaprimes[key] = [p] |
||
} |
} |
||
} |
} |
||
Line 307: | Line 307: | ||
var groups = List.filled(maxIndex + 1, null) |
var groups = List.filled(maxIndex + 1, null) |
||
for (key in anaprimes.keys) { |
for (key in anaprimes.keys) { |
||
⚫ | |||
var v = anaprimes[key] |
var v = anaprimes[key] |
||
var nd = Int.digits(v[0]).count |
|||
var c = v.count |
var c = v.count |
||
if (c > largest[nd-1]) { |
if (c > largest[nd-1]) { |