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 (! |
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 ( |
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> |