Grootste gemene deler en kleinste gemene veelvoud

Een programma in Python om de god en het ktv van twee getallen te berekenen. We maken gebruik van het algoritme van Euclides, dat zegt dat de grootste gemene deler van a en b ( met a>b)  gelijk is aan de grootste gemene deler van b en de rest bij deling van a door b. Verder gebruiken we de formule dat  het product van de ggd en het kgv gelijk is aan het product van de twee  gegeven getallen.

een voorbeeld:

Een getal raden

Schrijf in Python een programma dat zelf een getal kiest tussen 1 en 100. Jij moet raden welk getal het is. de computer geeft enkel aan of je lager of hoger moet gokken.

Een paar opmerkingen:

  • input geeft steeds een string-variabele. Vandaar de toevoeging int om hiervan een geheel getal te maken.
  • randint(1,101) geeft een geheel getal tussen 1 en 100. Lett op je moet dus 1 getal hoger geven: 101
  • != betekent is niet gelijk aan bij een test.

Een mogelijke output :

Python probleem 3

Bepaal de grootste priemfactor van 600851475143.

Antwoord

 

 

  • We gaan een functie definiëren die de grootste priemfactor berekent van een willekeurig getal n. We importeren math om te werken met een vierkantswortel.
  • We gaan eerst kijken of n een macht van 2 is. We delen alle factoren 2 weg. Ofwel komen we 1 uit en dan is de hoogste priemfactor 2, ofwel komen we een getal uit groter dan 2. 
  • In de volgende lus herhalen we deze procedure voor alle getallen groter dan 3, met stapjes van 2 ( want de factoren 2 zijn al weg), tot aan wortel(n).
  • Nu is het enkel nog kwestie van afdrukken.

 

Functies in Python

Python bezit de mogelijkheid zelf functies te definiëren. Zo kunnen we bijvoorbeeld de kwadraatfunctie definitiëren:

Het  begin van een functie duiden we aan met def , nadien komt de naam en tussen de haakjes staan de argumenten, in dit geval dus gewoon x. Na return komt er wat de functie moet teruggeven. het is ook mogelijk om: meerdere argumenten te geven.  Als je in een programma vaak iets moet berekenen, maak je best een functie voor die berekening.

Je kan in Python zelfs gebruik maken van de functie in de functie zelf! We kunnen bijvoorbeeld gebruik maken van de recursieve relatie van faculteiten om hiervoor een functie te maken:

De functie zal zichzelf aanspreken.Je hebt natuurlijk ook beginwaarden nodig, anders kan je nooit een antwoord geven voor een willekeurige n. Als, zoals in ons voorbeeld, n = 20 zal de functie na 19 keer zichzelf aan te spreken, een 1 teruggeven, en dus eindigen.

While – lussen

Als de herhalingen eerder afhangen van een bepaalde voorwaarde, kan je beter een while-lus gebruiken. 

Alle iteraties zullen uitgevoerd worden, zolang de voorwaarde  
 achter de while geldt. In bovenstaand voorbeeld zal zolang i < 6, de waarde van i afgedrukt worden, en zal telkens met 1 worden vermeerderd.