Untouchable numbers: Difference between revisions

→‎{{header|Wren}}: Sieve now uses less memory and primes are generated in advance. Timing still about 66 seconds.
m (→‎{{header|Go}}: Minor change.)
(→‎{{header|Wren}}: Sieve now uses less memory and primes are generated in advance. Timing still about 66 seconds.)
Line 530:
var sieve = Fn.new { |n|
n = n + 1
var s = List.filled(n*4+1, false)
for (i in 0..n) {
var sum = Nums.sum(Int.properDivisors(i))
if (sum <= n) s[sum] = true
}
return s
Line 539:
 
var limit = 1e5
var c = Int.primeSieve(limit, false)
var s = sieve.call(14 * limit)
var untouchable = [2, 5]
var n = 6
while (n <= limit) {
if (!s[n] && !Int.isPrime(c[n-1)] && !Int.isPrime(c[n-3)]) untouchable.add(n)
n = n + 2
}
9,485

edits