23 lines
750 B
Text
23 lines
750 B
Text
PrimeNth=lambda Known, Known1 (n as long) -> {
|
|
if n<1 then Error "Only >=1"
|
|
if exist(known, n) then =eval(known) : exit
|
|
if n>5 then {
|
|
i=len(known1)
|
|
x=eval(known1, i-1)+2
|
|
} else x=5 : i=2
|
|
{
|
|
if i=n then =known(n) : exit
|
|
if frac(x) then 999
|
|
if frac(x/2) else 999
|
|
if frac(x/3) else 999
|
|
x1=sqrt(x) : d=5@
|
|
{if frac(x/d ) else 999
|
|
d += 2: if d>x1 then 1000
|
|
if frac(x/d) else 999
|
|
d += 4: if d<= x1 else 1000
|
|
loop
|
|
}
|
|
999 x++ : Restart
|
|
1000 i++:Append Known, i:=x : if not exist(Known1, x) then Append Known1, x
|
|
x++ : Loop }
|
|
}
|