Wagstaff primes: Difference between revisions
Content added Content deleted
Thundergnat (talk | contribs) m (→{{header|Raku}}: avoid needless stringification, better concurrency) |
(python) |
||
Line 79: | Line 79: | ||
10: 43: 2932031007403 |
10: 43: 2932031007403 |
||
</pre> |
</pre> |
||
=={{header|Python}}== |
|||
<syntaxhighlight lang="python">""" Rosetta code Wagstaff_primes task """ |
|||
from sympy import isprime |
|||
def wagstaff(N): |
|||
""" find first N Wagstaff primes """ |
|||
pri, wcount = 2, 0 |
|||
while wcount < N: |
|||
pri +=1 |
|||
if isprime(pri): |
|||
wag = (2**pri + 1) // 3 |
|||
if isprime(wag): |
|||
wcount += 1 |
|||
print(f'{wcount: 2}: {pri: 5} => ', |
|||
f'{wag:,}' if wcount < 11 else f'[{len(str(wag))} digit number]') |
|||
wagstaff(22) |
|||
</syntaxhighlight>{{out}} |
|||
<pre> |
|||
1: 3 => 3 |
|||
2: 5 => 11 |
|||
3: 7 => 43 |
|||
4: 11 => 683 |
|||
5: 13 => 2,731 |
|||
6: 17 => 43,691 |
|||
7: 19 => 174,763 |
|||
8: 23 => 2,796,203 |
|||
9: 31 => 715,827,883 |
|||
10: 43 => 2,932,031,007,403 |
|||
11: 61 => [18 digit number] |
|||
12: 79 => [24 digit number] |
|||
13: 101 => [30 digit number] |
|||
14: 127 => [38 digit number] |
|||
15: 167 => [50 digit number] |
|||
16: 191 => [58 digit number] |
|||
17: 199 => [60 digit number] |
|||
18: 313 => [94 digit number] |
|||
19: 347 => [104 digit number] |
|||
20: 701 => [211 digit number] |
|||
21: 1709 => [514 digit number] |
|||
22: 2617 => [788 digit number] |
|||
</pre> |
|||
=={{header|Raku}}== |
=={{header|Raku}}== |