eraertslau
Artikelen: 0
Berichten: 2
Lid geworden op: vr 28 okt 2016, 14:16

priemgetallen python

Hallo iedereen,
 
Ik heb een vraag in verband met een oefening die gemaakt moet worden in python. De bedoeling is dat er een functie controleert of het gegeven getal een priemgetal is of niet. Deze geeft dan als resultaat 'True' indien het een priemgetal is of 'False' in het andere geval. De functie wordt herhaald tot de gebruiker 'einde' ingeeft.
Ik heb eerst een programma proberen op te stellen dat nagaat of het opgegeven getal een priemgetal is, maar dit geeft al een fout antwoord als ik het bv. het niet-priemgetal 8 ingeef...
Kan iemand mij misschien verder helpen?
Bedankt!
 
 
waarde = int(input("Geef een getal in : "))
i = waarde-1
 
   if(waarde % i == 0) and (i>0):
       print("het is geen priemgetal")
       i = i-1
   else:
      print("het is wel een priemgetal")
Gebruikersavatar
Safe
Pluimdrager
Artikelen: 0
Berichten: 10.058
Lid geworden op: wo 17 nov 2004, 12:37

Re: priemgetallen python

Wat is een priemgetal?
Je test helemaal geen delers ...
keyzplayer
Artikelen: 0
Berichten: 143
Lid geworden op: wo 02 mei 2007, 15:53

Re: priemgetallen python

Safe schreef: Wat is een priemgetal?
Je test helemaal geen delers ...
Jawel, er wordt de modulus operator gebruikt:
waarde % i     geeft de rest van      waarde/i
 
i is de deler
 
Het gebruikte algorithme is echter niet goed.
 
Als ik het programma naloop met waarde = 8, dan wordt i gelijk gesteld aan 8-1 = 7
Vervolgens kom je in het IF statement terecht
waarde % i is dan 8 % 7 = 0.142...
en i is inderdaad nog groter dan 0
De conditie in het IF gedeelte is dus niet waar dus gaat het ELSE gedeelte in werking en geeft dus aan dat 8 een priemgetal is.
 
Een priemgetal is >1 en alleen deelbaar door zichzelf en 1.
Dat wil zeggen dat de expressie WAARDE % i alleen gelijk mag zijn aan 0 als i gelijk is aan waarde of als i gelijk is aan 1.
Dat is altijd zo.
Je moet dus testen of de expressie WAARDE % i gelijk is aan 0 voor getallen die kleiner zijn dan WAARDE en groter zijn dan 1. Kom je die situatie niet tegen is het een priemgetal.
Gebruikersavatar
physicalattraction
Moderator
Artikelen: 0
Berichten: 4.163
Lid geworden op: do 30 mar 2006, 15:37

Re: priemgetallen python

Je beredenering klopt, maar je code volgt die beredenering niet. Je test alleen of het getal deelbaar is door waarde-1, maar je hebt geen loop waarin je alle getallen checkt.

Terug naar “Informatica en programmeren”