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);