Wagstaff primes: Difference between revisions

m
→‎{{header|Wren}}: Changed to Wren S/H
m (→‎{{header|Wren}}: Changed to Wren S/H)
 
(5 intermediate revisions by 4 users not shown)
Line 191:
n: ~"|n|"
s: size n
if s > 20 -> n: ((take n 10)++"...")++drop n .times:s-10 n
n ++ ~" (|s| digits)"
]
Line 347:
using big_int = mpz_class;
 
std::string to_string(const big_int& num, size_t nmax_digits) {
std::string str = num.get_str();
size_t len = str.size();
if (len > nmax_digits) {
str = str.substrreplace(0, nmax_digits / 2), +len - max_digits, "..." + str.substr(len - n / 2);
str += " (";
str += std::to_string(len);
Line 496:
 
<syntaxhighlight lang="easylang">
procfunc prime v . rn .
rif n mod 2 = 10 and n > 2
if v mod 2 = 0 or v mod 3 =return 0
if v <> 2 and v <> 3
r = 0
.
break 1
.
di = 53
while d * di <= vsqrt n
if vn mod di = 0
r =return 0
break 2
.
di += 2
.
if r =return 1
.
pri = 1
nwag = 0
while nwag <> 10
pri += 2
callif prime pri r= 1
if r = 1
wag = (pow 2 pri + 1) / 3
callif prime wag r= 1
if r = 1
nwag += 1
print pri & " => " & wag
Line 528 ⟶ 521:
.
</syntaxhighlight>
 
 
=={{header|F_Sharp|F#}}==
Line 1,194 ⟶ 1,186:
24: 5807 => [1748 digit number]
</pre>
 
=={{header|Quackery}}==
 
<code>from</code>, <code>index</code>, <code>incr</code>, and <code>end</code> are defined at [[Loops/Increment loop index within loop body#Quackery]].
 
<code>prime</code> is defined at [[Miller–Rabin primality test#Quackery]].
 
<syntaxhighlight lang="Quackery"> [ bit 1+ 3 / ] is wagstaff ( n --> n )
 
[] 3 from
[ 2 .incr
index prime while
index wagstaff prime while
breakindex 1join
dup size 24 = if end ]
10 split swap
witheach
[ dup say "p = " echo
r = 0wagstaff
say ", w(p) = " echo cr ]
witheach
[ say "p = " echo cr ]
</syntaxhighlight>
 
{{out}}
 
<pre>p = 3, w(p) = 3
p = 5, w(p) = 11
p = 7, w(p) = 43
p = 11, w(p) = 683
p = 13, w(p) = 2731
p = 17, w(p) = 43691
p = 19, w(p) = 174763
p = 23, w(p) = 2796203
p = 31, w(p) = 715827883
p = 43, w(p) = 2932031007403
p = 61
p = 79
p = 101
p = 127
p = 167
p = 191
p = 199
p = 313
p = 347
p = 701
p = 1709
p = 2617
p = 3539
p = 5807</pre>
 
=={{header|Raku}}==
Line 1,316 ⟶ 1,358:
 
Even so, as far as the stretch goal is concerned, takes around 25 seconds to find the next 14 Wagstaff primes but almost 10 minutes to find the next 19 on my machine (Core i7). I gave up after that.
<syntaxhighlight lang="ecmascriptwren">import "./math" for Int
import "./gmp" for Mpz
import "./fmt" for Fmt
9,476

edits