Unprimeable numbers: Difference between revisions

Content added Content deleted
m (→‎{{header|Wren}}: Library name change.)
(→‎{{header|Wren}}: Now uses Wren-math module.)
Line 1,905: Line 1,905:
{{trans|Go}}
{{trans|Go}}
{{libheader|Wren-fmt}}
{{libheader|Wren-fmt}}
{{libheader|Wren-math}}
<lang ecmascript>import "/fmt" for Fmt
<lang ecmascript>import "/fmt" for Fmt
import "/math" for Int

var isPrime = Fn.new { |n|
if (n < 2 || !n.isInteger) return false
if (n%2 == 0) return n == 2
if (n%3 == 0) return n == 3
var d = 5
while (d*d <= n) {
if (n%d == 0) return false
d = d + 2
if (n%d == 0) return false
d = d + 4
}
return true
}


System.print("The first 35 unprimeable numbers are:")
System.print("The first 35 unprimeable numbers are:")
Line 1,927: Line 1,915:
var countFirst = 0
var countFirst = 0
while (countFirst < 10) {
while (countFirst < 10) {
if (!isPrime.call(i)) { // unprimeable number must be composite
if (!Int.isPrime(i)) { // unprimeable number must be composite
var s = "%(i)"
var s = "%(i)"
var le = s.count
var le = s.count
Line 1,938: Line 1,926:
var bb = b.reduce("") { |acc, byte| acc + String.fromByte(byte) }
var bb = b.reduce("") { |acc, byte| acc + String.fromByte(byte) }
var n = Num.fromString(bb)
var n = Num.fromString(bb)
if (isPrime.call(n)) {
if (Int.isPrime(n)) {
outer = true
outer = true
break
break
Line 1,961: Line 1,949:
i = i + 1
i = i + 1
}
}

System.print("The first unprimeable number that ends in:")
System.print("The first unprimeable number that ends in:")
for (i in 0...10) System.print(" %(i) is: %(Fmt.dc(9, firstNum[i]))")</lang>
for (i in 0...10) System.print(" %(i) is: %(Fmt.dc(9, firstNum[i]))")</lang>