home *** CD-ROM | disk | FTP | other *** search
-
- "Sieb des Eratosthenes"
-
- Primzahlen(n,L-iste) ->
- Zahlen-von-bis(2,n,z-ahlen)
- Sieb(z-ahlen,n,L-iste);
-
- Zahlen-von-bis(n1,n2,n1.z-ahlen) ->
- kleiner-gleich(n1,n2)
- /
- plus(n1,1,n)
- Zahlen-von-bis(n,n2,z-ahlen);
- Zahlen-von-bis(n1,n2,nil) ->;
-
- Sieb(p.l,n,p.l) ->
- quadrat-groesser(p,n)
- /;
- Sieb(p.l-iste-alt,n,p.p-rimzahlen) ->
- Vielfache-streichen(p,l-iste-alt,l-iste-neu)
- Sieb(l-iste-neu,n,p-rimzahlen);
-
- Vielfache-streichen(p,nil,nil) ->;
- Vielfache-streichen(p,n.l-iste-alt,l-iste-neu) ->
- Vielfaches(n,p)
- /
- Vielfache-streichen(p,l-iste-alt,l-iste-neu);
- Vielfache-streichen(p,n.l-iste-alt,n.l-iste-neu) ->
- Vielfache-streichen(p,l-iste-alt,l-iste-neu);
-
- "Rechenregeln"
-
- kleiner-gleich(x,y) -> val(inf(y,x),0);
-
- plus(x,y,z) -> val(add(x,y),z);
-
- quadrat-groesser(p,n) ->
- val(mul(p,p),z)
- val(inf(n,z),1);
-
- Vielfaches(n,p) -> val(mod(n,p),0);