Genereren van priemgetallen in structuurtekst
Moderators: ArcherBarry, Fuzzwood
-
- Berichten: 126
Genereren van priemgetallen in structuurtekst
"Ontwerp een programma in structuurtekst dat de priemgetallen van 1 tot 100 afdrukt op het scherm."
Probleemstelling:
-------------------
Het probleem zit hem niet in of ik al dan niet structuurtekst snap, aangezien dit reeds in grote mate geëigend en bovendien ook zekere noties van Pascal en Java. Het probleem zit hem eerder in het verwoorden van de voorwaarde waarop getest moet worden om te zien of het getal in kwestie een priemgetal is.
Voor zover ik begrijp na wikipedia.org raad te plegen, is er geen eenduidige formule voor het generen van priemgetallen, afgezien van de methode trial division en polynomen voor n < 41. Ik zoek echter naar een eenvoudige manier om deze voorwaarde te implementeren in mijn iteratie.
Wat denk ik te doen:
-----------------------
Het programma kent een selectie (if then / else) binnen een iteratie (bepaalde iteratie for...do). Ik had reeds gedacht aan for i = 1 to 100 do: if 100 mod i = 0 then result = false else print(result). Deze voorwaarde klopt echter niet voor alle getallen (als ik bv 12 invul ter controle, krijg je 100 mod 12 = 4, en zou 12 als priemgetal worden afgedrukt wat natuurlijk niet mag.
Weten jullie hoe ik dit best kan oplossen? alvast bedankt!
Probleemstelling:
-------------------
Het probleem zit hem niet in of ik al dan niet structuurtekst snap, aangezien dit reeds in grote mate geëigend en bovendien ook zekere noties van Pascal en Java. Het probleem zit hem eerder in het verwoorden van de voorwaarde waarop getest moet worden om te zien of het getal in kwestie een priemgetal is.
Voor zover ik begrijp na wikipedia.org raad te plegen, is er geen eenduidige formule voor het generen van priemgetallen, afgezien van de methode trial division en polynomen voor n < 41. Ik zoek echter naar een eenvoudige manier om deze voorwaarde te implementeren in mijn iteratie.
Wat denk ik te doen:
-----------------------
Het programma kent een selectie (if then / else) binnen een iteratie (bepaalde iteratie for...do). Ik had reeds gedacht aan for i = 1 to 100 do: if 100 mod i = 0 then result = false else print(result). Deze voorwaarde klopt echter niet voor alle getallen (als ik bv 12 invul ter controle, krijg je 100 mod 12 = 4, en zou 12 als priemgetal worden afgedrukt wat natuurlijk niet mag.
Weten jullie hoe ik dit best kan oplossen? alvast bedankt!
-
- Berichten: 186
Re: Genereren van priemgetallen in structuurtekst
effe snel ingerammeld, zoiets..
for i:= 1 to 100 do
begin
K := 0;
for j := 1 to i do
if i mod j =0 then K := k+1
if k = 2 then print(i) //"alleen deelbaar door 1 en zichzelf"
end
for i:= 1 to 100 do
begin
K := 0;
for j := 1 to i do
if i mod j =0 then K := k+1
if k = 2 then print(i) //"alleen deelbaar door 1 en zichzelf"
end
- Berichten: 7.390
Re: Genereren van priemgetallen in structuurtekst
Een formule om priemgetallen te generen, bestaat er niet. Aan de hand van de definitie kan je echter wel met een iteratie voor elk getal testen of de definitie voldaan is... Voor elke waarde van n laat je een nieuwe lus runnen, die de delers van 2 tot en met n-1 test. En elke keer als mod wel nul geeft, augment je de variabele aantaldelers, ten slotte evalueer je deze variabele na de lus en print n al dan niet.
Voila, je was me voor
Als je nu eens de K vervangt door c en de =k+1 door ++
Voila, je was me voor
Als je nu eens de K vervangt door c en de =k+1 door ++
"C++ : Where friends have access to your private members." Gavin Russell Baker.