Wilson primes of order n: Difference between revisions
Content added Content deleted
(→{{header|ALGOL 68}}: Should also test for p being prime ...) |
No edit summary |
||
Line 1,115: | Line 1,115: | ||
11 | 17 2713 |
11 | 17 2713 |
||
</pre> |
</pre> |
||
=={{header|Python}}== |
|||
<syntaxhighlight lang="python"> |
|||
# wilson_prime.py by xing216 |
|||
def sieve(n): |
|||
multiples = [] |
|||
for i in range(2, n+1): |
|||
if i not in multiples: |
|||
yield i |
|||
for j in range(i*i, n+1, i): |
|||
multiples.append(j) |
|||
def intListToString(list): |
|||
return " ".join([str(i) for i in list]) |
|||
limit = 11000 |
|||
primes = list(sieve(limit)) |
|||
facs = [1] |
|||
for i in range(1,limit): |
|||
facs.append(facs[-1]*i) |
|||
sign = 1 |
|||
print(" n: Wilson primes") |
|||
print("—————————————————") |
|||
for n in range(1,12): |
|||
sign = -sign |
|||
wilson = [] |
|||
for p in primes: |
|||
if p < n: continue |
|||
f = facs[n-1] * facs[p-n] - sign |
|||
if f % p**2 == 0: wilson.append(p) |
|||
print(f"{n:2d}: {intListToString(wilson)}") |
|||
</syntaxhighlight> |
|||
{{out}} |
|||
<pre> |
|||
n: Wilson primes |
|||
————————————————— |
|||
1: 5 13 563 |
|||
2: 2 3 11 107 4931 |
|||
3: 7 |
|||
4: 10429 |
|||
5: 5 7 47 |
|||
6: 11 |
|||
7: 17 |
|||
8: |
|||
9: 541 |
|||
10: 11 1109 |
|||
11: 17 2713 |
|||
</pre> |
|||
=={{header|Racket}}== |
=={{header|Racket}}== |
||