← RU Pythoncursus

Inlever opgave

Google heeft regelmatig programmeerwedstrijden, waaraan iedereen mee mag doen. Om te oefenen met functies maken we hiervan een opdracht. Deze opdracht gaat over getallen die palindromen zijn - dit zijn getallen die hetzelfde zijn, als je ze achterstevoren leest. Zo zijn 55 en 10801 palindromen, maar 123 en 40 niet (ook al kunnen we 40 als 040 schrijven, dit tellen we niet mee).

  1. Schrijf een functie die een palindroom kan herkennen. Deze functie moet een integer als invoer krijgen, en True of False opleveren.

  2. Schrijf ook een functie die kan herkennen of een integer een kwadraat is.

  3. We gaan nu uitzoeken hoeveel getallen binnen een bepaald bereik, zowel palindroom als kwadraat zijn. Maak een functie die twee getallen als invoer krijgt die het bereik aangeven, en aangeeft hoeveel getallen er voldoen.

  4. Zoek nu uit hoeveel getallen er voldoen in de bereiken $(0,100)$, $(100, 1000)$, en $(1000, 100000)$

Opmerking: bij de opdrachten van Google moet je je algoritme vaak loslaten op een gemakkelijke invoer, en op een moeilijke invoer. De gemakkelijke invoer kan op de bovenstaande manier, maar voor de moeilijke invoer moet je een slimmer en efficiënter algoritme bedenken!

  1. (Optioneel) Kan je een manier bedenken om dit programma sneller te maken?