Factorial primes: Difference between revisions
Content added Content deleted
m (→{{header|Phix}}: 15s) |
(→{{header|Wren}}: Less repetitious.) |
||
Line 345: | Line 345: | ||
var f = 1 |
var f = 1 |
||
while (true) { |
while (true) { |
||
for (gs in [[f-1, "-"], [f+1, "+"]]) { |
|||
if (Int.isPrime(gs[0])) { |
|||
Fmt.print("$2d: $2d! |
Fmt.print("$2d: $2d! $s 1 = $d", c = c + 1, i, gs[1], gs[0]) |
||
if (c == 10) return |
if (c == 10) return |
||
} |
|||
} |
|||
⚫ | |||
⚫ | |||
} |
} |
||
i = i + 1 |
i = i + 1 |
||
Line 374: | Line 372: | ||
===Stretch=== |
===Stretch=== |
||
{{libheader|Wren-gmp}} |
{{libheader|Wren-gmp}} |
||
This takes about 28.5 seconds to reach the 33rd factorial prime on my machine (Core i7) with the last two being |
This takes about 28.5 seconds to reach the 33rd factorial prime on my machine (Core i7) with the last two being noticeably slower to emerge. Likely to be very slow after that as the next factorial prime is 1477! + 1. |
||
<lang ecmascript>import "./gmp" for Mpz |
<lang ecmascript>import "./gmp" for Mpz |
||
import "./fmt" for Fmt |
import "./fmt" for Fmt |
||
Line 386: | Line 384: | ||
f.mul(i) |
f.mul(i) |
||
var r = (i < 21) ? 1 : 0 // test for definite primeness below 2^64 |
var r = (i < 21) ? 1 : 0 // test for definite primeness below 2^64 |
||
for (gs in [[f-1, "-"], [f+1, "+"]]) { |
|||
if (gs[0].probPrime(15) > r) { |
|||
var |
var s = gs[0].toString |
||
var sc = s.count |
|||
var digs = sc > 40 ? "(%(sc) digits)" : "" |
|||
⚫ | |||
if (c == limit) return |
|||
⚫ | |||
} |
|||
} |
|||
var s = (f+1).toString |
|||
var sc = s.count |
|||
var digs = sc > 40 ? "(%(sc) digits)" : "" |
|||
Fmt.print("$2d: $3d! + 1 = $20a $s", c = c + 1, i, s, digs) |
|||
if (c == limit) return |
|||
} |
} |
||
i = i + 1 |
i = i + 1 |