Sexy primes: Difference between revisions

492 bytes removed ,  4 years ago
→‎{{header|Wren}}: Now uses Wren-math module.
m (→‎{{header|Wren}}: Library name change.)
(→‎{{header|Wren}}: Now uses Wren-math module.)
Line 2,083:
{{trans|Go}}
{{libheader|Wren-fmt}}
{{libheader|Wren-math}}
<lang ecmascript>import "/fmt" for Fmt
import "/math" for Int
 
var sieve = Fn.new { |limit|
limit = limit + 1
// True denotes composite, false denotes prime.
var c = List.filled(limit, false)
c[0] = true
c[1] = true
// no need to bother with even numbers over 2 for this task
var p = 3 // Start from 3.
while (true) {
var p2 = p * p
if (p2 >= limit) break
var i = p2
while (i < limit) {
c[i] = true
i = i + 2*p
}
while (true) {
p = p + 2
if (!c[p]) break
}
}
return c
}
 
var printHelper = Fn.new { |cat, le, lim, max|
var cle = Fmt.commatize(le)
Line 2,118 ⟶ 2,096:
return [le, last, verb]
}
 
var lim = 1000035
var sv = sieveInt.callprimeSieve(lim-1, false)
var pairs = []
var trips = []
Line 2,154 ⟶ 2,132:
verb = t[2]
}
 
unwrap.call(printHelper.call("pairs", pairs.count, lim, 5))
System.print("The last %(n) %(verb):\n %(pairs[le-n..-1])\n")
unwrap.call(printHelper.call("triplets", trips.count, lim, 5))
System.print("The last %(n) %(verb):\n %(trips[le-n..-1])\n")
 
unwrap.call(printHelper.call("quadruplets", quads.count, lim, 5))
System.print("The last %(n) %(verb):\n %(quads[le-n..-1])\n")
 
unwrap.call(printHelper.call("quintuplets", quins.count, lim, 5))
System.print("The last %(n) %(verb):\n %(quins[le-n..-1])\n")
 
unwrap.call(printHelper.call("unsexy primes", unsexy.count, lim, 10))
System.print("The last %(n) %(verb):\n %(unsexy[le-n..-1])\n")</lang>
9,492

edits