Article View: be.comp.programming
Article #12636Re: pascal vraagje
From: Roel Schroeven
Date: Tue, 23 Oct 2001 19:19
Date: Tue, 23 Oct 2001 19:19
44 lines
2826 bytes
2826 bytes
In article <qggB7.804$yZ.177@afrodite.telenet-ops.be>, "Regus"
<regus@pandora.be> wrote:
> Ik moet in pascal alle priemgetallen tussen 1 en 100 hebben. Kan iemand
> mij verderhelpen?
Daar bestaat een algorithme voor, het algorithme van Euclides als ik me
niet vergis. Dat gaat als volgt.
1. Maak een lijst van de getallen van 2 tot 100 (vanaf 2 omdat 1 toch
geen priemgetal is, en het maakt het algorithme eenvoudiger), en onthoudt
op de een of andere manier of het getal in kwestie priem is of niet:
"var priemlijst: array[2..100] of boolean"
voldoet prima, als mijn kennis van Pascal-syntax nog klopt).
2. Initialiseer alle getallen in die lijst als zijnde priem:
for i := 2 to 100 do priemlijst[i] := true;
3. Loop over alle getallen in de lijst. Als het getal in kwestie niet
priem is, ga je direct naar het volgende. Als het wel priem is, duidt je
alle veelvouden van dat getal aan als zijnde niet priem. Je kan ineens
ook het betreffende getal uitvoeren.
for i := 2 to 100 do begin
if priemlijst[i] then begin
WriteLn(i);
j := 2 * i;
while j < 100 do begin
priemlijst[j] := false;
j := j + i;
end;
end;
end;
Er zal nogal wat haar op de syntax staan vrees ik, maar het algorithme
zou wel moeten kloppen, en is efficienter dan de andere oplossingen die
ik gezien heb. 't Is trouwens beter als je die 100 in een constante
steekt, dan kan je het programma gemakkelijk aanpassen om de
priemgetallen tussen bijv. 2 en 10000 te zoeken. Je moet wel altijd bij 2
beginnen!
--
Roel Schroeven
x3jmyi0yrrn3h001@sneakemail.com (anti-spam email address from sneakemail.com)
"Don't blame me if there are bugs. Blame the cute, furry one." - Rusty Russell
Technical Details
Message-ID:
<pan.2001.10.23.21.19.43.107.9066@sneakemail.com>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!news.tele.dk!small.news.tele.dk!193.190.198.17!newsfeeds.belnet.be!news.belnet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mailReferences:
<qggB7.804$yZ.177@afrodite.telenet-ops.be>Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit X-Google-Thread: fcea4,2a0e47af4eb831ae X-Google-Attributes: gidfcea4,public X-Google-ArrivalTime: 2001-10-23 12:19:45 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!news.tele.dk!small.news.tele.dk!193.190.198.17!newsfeeds.belnet.be!news.belnet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail From: "Roel Schroeven" <x3jmyi0yrrn3h001@sneakemail.com> Subject: Re: pascal vraagje Newsgroups: be.comp.programming Message-ID: <pan.2001.10.23.21.19.43.107.9066@sneakemail.com> References: <qggB7.804$yZ.177@afrodite.telenet-ops.be> User-Agent: Pan/0.10.0 (Unix) Mime-Version: 1.0 Content-Type: text/plain; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: 8bit X-Comment-To: "Regus" <regus@pandora.be> Lines: 44 Date: Tue, 23 Oct 2001 19:19:44 GMT NNTP-Posting-Host: 213.224.134.251 X-Complaints-To: abuse@pandora.be X-Trace: afrodite.telenet-ops.be 1003864784 213.224.134.251 (Tue, 23 Oct 2001 21:19:44 MET DST) NNTP-Posting-Date: Tue, 23 Oct 2001 21:19:44 MET DST Organization: Telenet Internet