A Maple egy fejlett matematikai problémamegoldó és programozói szoftver.
-
xDJCx #445
Ez egy megvalósítása Mapleben, lehetne ennél hatékonyabban is:
Erathosztenes:=proc(n::posint)
local F,Ki,m,t;
if n=1 then return NULL: end if;
F:=Array(1..n);
m:=2:
while m^2<=n do
if F[m] = 0 then
t:=2;
while m*t<=n do
F[m*t] := 1 :
t:=t+1;
end do:
end if;
m:=m+1;
end do;
t:=0;
for m from 2 to n do
if F[m]=0 then
t:=t+1;Ki[t]:=m;
end if;
end do;
convert(Ki,'list');
end proc;
pl. 1..50-ig a prímszámok Erathosztenész szitájával:
Erathosztenes(50);
1..n-ig a primeket egyszerűbben is meg lehet kapni a Mapleben a beépített prímtesztelő parancsát (isprime) felhasználva:
primek:=n->select(isprime,[$1..n]);
primek(50);