Achilles numbers: Difference between revisions

→‎{{header|Wren}}: Twice as fast as before due to excluding primes to start with.
(julia example)
(→‎{{header|Wren}}: Twice as fast as before due to excluding primes to start with.)
Line 231:
 
=={{header|Wren}}==
{{libheader|Wren-math}}
{{libheader|Wren-seq}}
{{libheader|Wren-fmt}}
This finds the number of 6 digit Achilles numbers in 2.5 seconds, 7 digits in 51 seconds but 8 digits needs a whopping 21 minutes!
<lang ecmascript>import "./seqmath" for LstInt
import "./seq" for Lst
import "./fmt" for Fmt
 
 
var maxDigits = 8
var limit = 10.pow(maxDigits)
var c = Int.primeSieve(limit-1, false)
 
var totient = Fn.new { |n|
Line 289 ⟶ 297:
}
 
var isAchilles = Fn.new { |n| c[n] && isPowerful.call(n) && !isPerfectPower.call(n) }
 
var isStrongAchilles = Fn.new { |n|
Line 325 ⟶ 333:
System.print("\nNumber of Achilles numbers with:")
var pow = 10
for (i in 2..7maxDigits) {
var count = 0
for (j in pow..pow*10-1) {
Line 355 ⟶ 363:
6 digits: 664
7 digits: 2242
8 digits: 7395
</pre>
9,483

edits