Wagstaff primes: Difference between revisions

Content added Content deleted
(Added Go)
(Julia implementation)
Line 103: Line 103:
{{out}}
{{out}}


<pre> 1: 3 - 3 (1 digits)
<pre>

2: 5 - 11 (2 digits)
p = 3, m = 3
3: 7 - 43 (2 digits)
p = 5, m = 11
4: 11 - 683 (3 digits)
p = 7, m = 43
5: 13 - 2731 (4 digits)
p = 11, m = 683
6: 17 - 43691 (5 digits)
p = 13, m = 2731
7: 19 - 174763 (6 digits)
p = 17, m = 43691
8: 23 - 2796203 (7 digits)
p = 19, m = 174763
9: 31 - 715827883 (9 digits)
p = 23, m = 2796203
10: 43 - 2932031007403 (13 digits)
p = 31, m = 715827883
11: 61 - 768614336404564651 (18 digits)
p = 43, m = 2932031007403
12: 79 - 2014876366...8195784363 (24 digits)
p = 61, m = 768614336404564651
13: 101 - 8451004001...1135470251 (30 digits)
14: 127 - 5671372782...8628035243 (38 digits)
p = 79, m = 2014876366...8195784363 (24 digits)
15: 167 - 6235740319...3121833643 (50 digits)
p = 101, m = 8451004001...1135470251 (30 digits)
16: 191 - 1046183622...7339085483 (58 digits)
p = 127, m = 5671372782...8628035243 (38 digits)
17: 199 - 2678230073...8805883563 (60 digits)
p = 167, m = 6235740319...3121833643 (50 digits)
18: 313 - 5562466239...8130434731 (94 digits)
p = 191, m = 1046183622...7339085483 (58 digits)
19: 347 - 9556244233...1903606443 (104 digits)
p = 199, m = 2678230073...8805883563 (60 digits)
20: 701 - 3506757267...7823854251 (211 digits)
p = 313, m = 5562466239...8130434731 (94 digits)
21: 1709 - 9619252724...9070528171 (514 digits)
p = 347, m = 9556244233...1903606443 (104 digits)
22: 2617 - 2081504709...3435947691 (788 digits)
p = 701, m = 3506757267...7823854251 (211 digits)
23: 3539 - 7379609820...6486497963 (1065 digits)
p = 1709, m = 9619252724...9070528171 (514 digits)
24: 5807 - 4018496237...6663568043 (1748 digits)</pre>
p = 2617, m = 2081504709...3435947691 (788 digits)
p = 3539, m = 7379609820...6486497963 (1065 digits)
p = 5807, m = 4018496237...6663568043 (1748 digits)


</pre>


=={{header|BASIC256}}==
=={{header|BASIC256}}==
Line 476: Line 481:
23 3539 45.089
23 3539 45.089
24 5807 181.280</syntaxhighlight>
24 5807 181.280</syntaxhighlight>

=={{header|Julia}}==

* Requires Primes.jl

<syntaxhighlight lang=julia>

using Primes

function wagstaffpair(p::Integer)
isodd(p) || return (false, nothing)
isprime(p) || return (false, nothing)

m = (2^big(p) + 1) ÷ 3

isprime(m) || return (false, nothing)
return (true, m)
end

function findn_wagstaff_pairs(n_to_find::T) where T <: Integer
pairs = Tuple{T, BigInt}[]
count = 0
i = 2
while count < n_to_find
iswag, m = wagstaffpair(i)
iswag && push!(pairs, (i, m))
count += iswag
i += 1
end
return pairs
end

function println_wagstaff(pair; max_digit_display::Integer=20)
p, m = pair
mstr = string(m)

if length(mstr) > max_digit_display
umiddle = cld(max_digit_display, 2)
lmiddle = fld(max_digit_display, 2)
mstr = join((mstr[1:umiddle], "...", mstr[end-lmiddle+1:end],
" ($(length(mstr)) digits)"))
end

println("p = $p, m = $mstr")
end

foreach(println_wagstaff, findn_wagstaff_pairs(24))


</syntaxhighlight>

<pre>
p = 3, m = 3
p = 5, m = 11
p = 7, m = 43
p = 11, m = 683
p = 13, m = 2731
p = 17, m = 43691
p = 19, m = 174763
p = 23, m = 2796203
p = 31, m = 715827883
p = 43, m = 2932031007403
p = 61, m = 768614336404564651
p = 79, m = 2014876366...8195784363 (24 digits)
p = 101, m = 8451004001...1135470251 (30 digits)
p = 127, m = 5671372782...8628035243 (38 digits)
p = 167, m = 6235740319...3121833643 (50 digits)
p = 191, m = 1046183622...7339085483 (58 digits)
p = 199, m = 2678230073...8805883563 (60 digits)
p = 313, m = 5562466239...8130434731 (94 digits)
p = 347, m = 9556244233...1903606443 (104 digits)
p = 701, m = 3506757267...7823854251 (211 digits)
p = 1709, m = 9619252724...9070528171 (514 digits)
p = 2617, m = 2081504709...3435947691 (788 digits)
p = 3539, m = 7379609820...6486497963 (1065 digits)
p = 5807, m = 4018496237...6663568043 (1748 digits)

</pre>


=={{header|Java}}==
=={{header|Java}}==