Springen naar inhoud

Genereren van priemgetallen in structuurtekst


  • Log in om te kunnen reageren

#1

English

    English


  • >100 berichten
  • 126 berichten
  • Ervaren gebruiker

Geplaatst op 16 oktober 2010 - 14:29

"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!

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

Celtic

    Celtic


  • >100 berichten
  • 161 berichten
  • Ervaren gebruiker

Geplaatst op 16 oktober 2010 - 14:52

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

#3

In physics I trust

    In physics I trust


  • >5k berichten
  • 7384 berichten
  • Moderator

Geplaatst op 16 oktober 2010 - 14:56

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 ++ ;) :)
"C++ : Where friends have access to your private members." — Gavin Russell Baker.

#4

English

    English


  • >100 berichten
  • 126 berichten
  • Ervaren gebruiker

Geplaatst op 16 oktober 2010 - 15:19

Bedankt aan beiden! ;)





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures