AKS test for primes: Difference between revisions
Content added Content deleted
m (Fix loop in Seed7 example) |
(add RPL) |
||
Line 4,754: | Line 4,754: | ||
Found 95 primes and the largest coefficient has 150 decimal digits. |
Found 95 primes and the largest coefficient has 150 decimal digits. |
||
</pre> |
|||
=={{header|RPL}}== |
|||
{| class="wikitable" |
|||
! RPL code |
|||
! Comment |
|||
|- |
|||
| |
|||
≪ → p |
|||
≪ { } 1 |
|||
0 p '''FOR''' j |
|||
p j COMB OVER * ROT SWAP + |
|||
SWAP NEG |
|||
'''NEXT''' DROP |
|||
≫ ≫ ‘'''XPM1'''’ STO |
|||
≪ DUP '''XPM1''' → p coeffs |
|||
≪ 1 |
|||
2 p '''FOR''' j |
|||
coeffs j GET ABS p MOD NOT AND '''NEXT''' |
|||
≫ ≫ ‘'''PRIM?'''’ STO |
|||
| |
|||
'''XPM1''' ''( p -- { (x-1)^p_coefficients } ) '' |
|||
coeffs = { } ; sign = 1 |
|||
loop for j=0 to p |
|||
append C(p,j)*sign to coeffs |
|||
sign = -sign |
|||
end loop |
|||
return coeffs |
|||
'''PRIM?''' ''( p -- boolean ) '' |
|||
res = true |
|||
loop for j=2 to p |
|||
res = res AND (mod(coeffs[j],p)=0) |
|||
return res |
|||
|} |
|||
{{in}} |
|||
<pre> |
|||
≪ 1 7 FOR n n XPM1 NEXT ≫ |
|||
≪ { } 2 35 FOR n IF n PRIM? THEN n + END NEXT ≫ |
|||
</pre> |
|||
{{out}} |
|||
<pre> |
|||
8: { 1 -1 } |
|||
7: { 1 -2 1 } |
|||
6: { 1 -3 3 -1 } |
|||
5: { 1 -4 6 -4 1 } |
|||
4: { 1 -5 10 -10 5 -1 } |
|||
3: { 1 -6 15 -20 15 -6 1 } |
|||
2: { 1 -7 21 -35 35 -21 7 -1 } |
|||
1: { 2 3 5 7 11 13 17 19 23 29 31 } |
|||
</pre> |
</pre> |
||