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.

 

Python probleem 2

Bereken de som van alle oneven Fibonacci getallen kleiner dan 4 miljoen.

Antwoord

  • De rij van Fibonacci : 1,1,2,3,5,8,13,21,.. De rij begint met twee enen en daarna is elke term gelijk aan de som van de vorige twee termen.
  • Een eerste idee: bereken elke term , controleer of het even is en tel op bij een gegeven teller. 
  • Omdat de rij gegeven wordt door een recursief voorschrift, is het gebruik van een functie Fibonacci(n) niet zo interessant . Immers worden telkens alle vorige termen opnieuw uitgerekend.
  • We kunnen beter werken met 3 termen van de rij en dan doorschuiven:a=1;b=1en c=a+b.Daarna geven we de waarde van b aan a en de waarde van c aan b en berkenen opnieuw a+b

 

 

Python probleem 1

Zoek de som van alle veelvouden van 3 of 5 kleiner dan 1000

 

Antwoord

  • Het probleem is wiskundig perfect op te lossen door de som te nemen van alle drievouden + de som van alle vijfvouden, verminderd met de som van de vijftienvouden. Alle uiteraard kleiner dan 1000.
  • Via Python gaan we alle getallen van 0 tot en met 999 controleren of ze een drievoud of vijfvoud zijn. Zo ja dan tellen we die op bij een variabele, met naam som. Deze variabele zetten we bij de start op nul.
  • We hebben ook de tijd berekend nodig voor dit uit te voeren

 

 

 

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.