Primality by trial division: Difference between revisions
Content added Content deleted
Not a robot (talk | contribs) (Add Miranda) |
|||
Line 2,936: | Line 2,936: | ||
=={{header|M2000 Interpreter}}== |
=={{header|M2000 Interpreter}}== |
||
<syntaxhighlight lang="m2000 interpreter"> |
<syntaxhighlight lang="m2000 interpreter"> |
||
Inventory Known1=2@, 3@ |
|||
IsPrime=lambda Known1 (x as decimal) -> { |
|||
=false |
|||
=0=1 |
|||
if exist(Known1, x) then =true : exit |
|||
if x<=5 OR frac(x) then {if x == 2 OR x == 3 OR x == 5 then Append Known1, x : =true |
|||
Break} |
|||
if frac(x/2) else exit |
|||
if frac(x/3) else exit |
|||
x1=sqrt(x):d = 5@ |
|||
do |
|||
if frac(x/d) else exit |
|||
d += 2: if d>x1 then Append Known1, x : =1=1 : exit |
|||
d += 2: if d>x1 then Append Known1, x : =true : exit |
|||
if frac(x/d) else exit |
|||
d += 4: if d<= x1 else Append Known1, x : =1=1: exit |
|||
d += 4: if d<= x1 else Append Known1, x : =true: exit |
|||
always |
|||
} |
|||
} |
|||
i=2 |
i=2 |