Wagstaff primes: Difference between revisions

→‎{{header|Wren}}: Simplified a bit in light of recently added note but only a smidgen quicker.
(Added a note.)
(→‎{{header|Wren}}: Simplified a bit in light of recently added note but only a smidgen quicker.)
Line 217:
 
var isWagstaff = Fn.new { |p|
var w = (2.pow(p) + 1) / 3 // always integral
if (!w.isInteger || !Int.isPrime(w)) return [false, null]
return [true, [p, w]]
}
 
var isBigWagstaff = Fn.new { |p|
var w = Mpz.one.lsh(p).add(1).div(3)
ifreturn (!w.isDivisibleUiprobPrime(315)) return [false,> null]0
w.div(3)
if (w.probPrime(15) == 0) return [false, null]
return [true, p]
}
 
Line 254 ⟶ 251:
if (Int.isPrime(p)) break
}
var res =if (isBigWagstaff.call(p)) {
Fmt.print("$5d ($3d secs)", res[1]p, (System.clock - start).ceil)
if (res[0]) {
Fmt.print("$5d ($3d secs)", res[1], (System.clock - start).ceil)
count = count + 1
}
Line 275 ⟶ 271:
43: 2932031007403
 
Took 0.056335055678 seconds
 
Values of 'p' for the next 19 Wagstaff primes and
Line 293 ⟶ 289:
3539 ( 5 secs)
5807 ( 25 secs)
10501 (198193 secs)
10691 (210205 secs)
11279 (251244 secs)
12391 (348341 secs)
14479 (599593 secs)
</pre>
9,477

edits