Mathe und Programmierung gehen Hand in Hand — Zahlen sind überall in der Programmierung. Egal, ob du überprüfst, ob eine Zahl prim ist, Fibonacci-Folgen generierst oder ein Palindrom erkennst, diese kleinen Herausforderungen schärfen sowohl deine mathematischen Fähigkeiten als auch deine Programmierlogik.
In diesem Artikel werden wir 20 anfängerfreundliche Programmierübungen basierend auf Zahlen erkunden. Für jede Übung erhältst du eine kurze Erklärung des mathematischen Konzepts, einige Beispiel-Eingaben und -Ausgaben sowie eine sofort ausführbare Python-Lösung. Es ist eine unterhaltsame Möglichkeit, das Programmieren zu üben und gleichzeitig zu lernen, wie mathematische Ideen wie perfekte Quadrate, Würfel und dreieckige Zahlen in Code lebendig werden.
1. Summe der ersten N natürlichen Zahlen
Was die Übung will:
Schreibe ein Programm, um die Summe der ersten n natürlichen Zahlen zu finden. Dies hilft dir, Schleifen oder mathematische Formeln zu üben.
Was ist eine natürliche Zahl?
Natürliche Zahlen sind die Zählzahlen, die bei 1 beginnen: 1, 2, 3, 4, …
Beispiel-Eingabe
5
Beispiel-Ausgabe
15
Python-Lösung
# Lese n und berechne die Summe der ersten n natürlichen Zahlen mit der geschlossenen Formel
n = int(input("Gib n ein: "))
# Verwende ganzzahlige Arithmetik (//), um Fließkommazahlen zu vermeiden
total = n * (n + 1) // 2
print(total)
2. Gerade oder Ungerade Prüfer
Was die Übung will:
Nimm eine ganze Zahl als Eingabe und gib aus, ob sie gerade oder ungerade ist.
Was ist gerade/ungerade?
Gerade Zahlen sind durch 2 teilbar (z.B. 2, 4, 6). Ungerade Zahlen hinterlassen den Rest 1, wenn sie durch 2 geteilt werden (z.B. 1, 3, 5).
Beispiel-Eingabe
7
Beispiel-Ausgabe
7 ist ungerade
Python-Lösung
# Bestimme, ob die eingegebene ganze Zahl gerade oder ungerade ist, mithilfe von Modulo
n = int(input("Gib eine Zahl ein: "))
if n % 2 == 0:
print(f"{n} ist gerade")
else:
print(f"{n} ist ungerade")
3. Primzahl Prüfer
Was die Übung will:
Schreibe ein Programm, um zu überprüfen, ob eine gegebene Zahl prim ist.
Was ist eine Primzahl?
Eine Primzahl ist größer als 1 und nur durch 1 und sich selbst teilbar (z.B. 2, 3, 5, 7).
Beispiel-Eingabe
13
Beispiel-Ausgabe
13 ist prim
Python-Lösung
# Überprüfe die Primalität, indem du bis zur Quadratwurzel von n dividierst
n = int(input("Gib eine Zahl ein: "))
if n < 2:
print(f"{n} ist keine Primzahl")
else:
for d in range(2, int(n**0.5) + 1):
if n % d == 0:
print(f"{n} ist keine Primzahl")
break
else:
print(f"{n} ist prim")
4. Summe der Ziffern
Was die Übung will:
Finde die Summe aller Ziffern einer Zahl.
Warum sind Ziffernsummen wichtig?
Ziffernsummen erscheinen in Teilbarkeitsregeln und verschiedenen Zahlenrätseln (z.B. durch 3 teilbar, wenn die Ziffernsumme durch 3 teilbar ist).
Beispiel-Eingabe
1234
Beispiel-Ausgabe
10
Python-Lösung
# Summiere die Ziffern, indem du die Zeichen durchläufst und in Ganzzahlen umwandelst
s = input("Gib eine Zahl ein: ").strip()
digit_sum = sum(int(ch) for ch in s if ch.isdigit())
print(digit_sum)
5. Palindromische Zahl Prüfer
Was die Übung will:
Überprüfe, ob eine Zahl vorwärts und rückwärts gleich gelesen wird.
Was ist eine palindromische Zahl?
Eine Zahl wie 121, 1331 oder 12321, die beim Umkehren gleich bleibt.
Beispiel-Eingabe
12321
Beispiel-Ausgabe
12321 ist ein Palindrom
Python-Lösung
# Vergleiche den String mit seinem Umkehrwert, um auf Palindrome zu testen
s = input("Gib eine Zahl ein: ").strip()
print(f"{s} ist ein Palindrom" if s == s[::-1] else f"{s} ist kein Palindrom")
6. Finde alle Faktoren einer Zahl
Was die Übung will:
Liste alle Zahlen auf, die n gleichmäßig teilen.
Was sind Faktoren?
Faktoren sind ganze Zahlen, die du multiplizieren kannst, um n zu erhalten. Für 12 sind die Faktoren 1, 2, 3, 4, 6, 12.
Beispiel-Eingabe
12
Beispiel-Ausgabe
1 2 3 4 6 12
Python-Lösung
# Generiere alle Teiler, indem du von 1 bis n testest
n = int(input("Gib eine Zahl ein: "))
factors = [d for d in range(1, n+1) if n % d == 0]
print(" ".join(map(str, factors)))
7. Perfekte Zahl Prüfer
Was die Übung will:
Überprüfe, ob n gleich der Summe seiner echten Teiler (ohne sich selbst) ist.
Was ist eine perfekte Zahl?
Zahlen wie 6 (=1+2+3) und 28 (=1+2+4+7+14) sind perfekte Zahlen.
Beispiel-Eingabe
28
Beispiel-Ausgabe
28 ist eine perfekte Zahl
Python-Lösung
# Summiere die echten Teiler (ohne n) und vergleiche mit n
n = int(input("Gib eine Zahl ein: "))
proper = [d for d in range(1, n) if n % d == 0]
print(f"{n} ist eine perfekte Zahl" if sum(proper) == n else f"{n} ist keine perfekte Zahl")
8. Armstrong (Narzisstische) Zahl Prüfer
Was die Übung will:
Überprüfe, ob n gleich der Summe seiner Ziffern, die zur Potenz der Anzahl der Ziffern erhoben werden.
Was ist eine Armstrong-Zahl?
Beispiel: 153 = 1³ + 5³ + 3³; 9474 = 9⁴ + 4⁴ + 7⁴ + 4⁴.
Beispiel-Eingabe
153
Beispiel-Ausgabe
153 ist eine Armstrong-Zahl
Python-Lösung
# Erhebe jede Ziffer zur Potenz der Gesamtanzahl der Ziffern und summiere
s = input("Gib eine Zahl ein: ").strip()
p = len(s)
arm = sum(int(ch)**p for ch in s)
print(f"{s} ist eine Armstrong-Zahl" if arm == int(s) else f"{s} ist keine Armstrong-Zahl")
9. Perfekte Quadrat Prüfer
Was die Übung will:
Überprüfe, ob eine Zahl ein perfektes Quadrat ist.
Was ist ein perfektes Quadrat?
Eine Zahl, die als k² geschrieben werden kann (z.B. 4, 9, 16, 25).
Beispiel-Eingabe
49
Beispiel-Ausgabe
49 ist ein perfektes Quadrat
Python-Lösung
# Verwende die ganzzahlige Quadratwurzel, um Probleme mit Fließkommazahlen zu vermeiden
import math
n = int(input("Gib eine Zahl ein: "))
print(f"{n} ist ein perfektes Quadrat" if math.isqrt(n)**2 == n else f"{n} ist kein perfektes Quadrat")
10. Perfekte Würfel Prüfer
Was die Übung will:
Überprüfe, ob eine Zahl ein perfekter Würfel ist.
Was ist ein perfekter Würfel?
Eine Zahl, die als k³ ausgedrückt werden kann (z.B. 8, 27, 64).
Beispiel-Eingabe
27
Beispiel-Ausgabe
27 ist ein perfekter Würfel
Python-Lösung
# Näherungsweise den Würfelwurzel berechnen und durch Rückverifizierung überprüfen
n = int(input("Gib eine Zahl ein: "))
croot = round(n ** (1/3))
print(f"{n} ist ein perfekter Würfel" if croot**3 == n else f"{n} ist kein perfekter Würfel")
11. Fibonacci-Folgen-Generator
Was die Übung will:
Generiere die ersten n Fibonacci-Zahlen.
Was ist eine Fibonacci-Zahl?
Folge, die mit 0, 1 beginnt, wobei jeder neue Term die Summe der beiden vorherigen ist: 0, 1, 1, 2, 3, 5, 8, …
Beispiel-Eingabe
7
Beispiel-Ausgabe
0 1 1 2 3 5 8
Python-Lösung
# Baue die Fibonacci-Folge iterativ auf, indem du zwei Tracker verwendest
n = int(input("Gib n ein: "))
a, b = 0, 1
seq = []
for _ in range(n):
seq.append(a)
a, b = b, a + b
print(" ".join(map(str, seq)))
12. Überprüfe, ob eine Zahl in der Fibonacci-Folge ist
Was die Übung will:
Überprüfe, ob eine gegebene Zahl zur Fibonacci-Folge gehört.
Mathematische Tatsache:
n ist Fibonacci, wenn (5n² + 4) oder (5n² − 4) ein perfektes Quadrat ist.
Beispiel-Eingabe
21
Beispiel-Ausgabe
21 ist eine Fibonacci-Zahl
Python-Lösung
# Verwende den 5n^2±4 Perfekt-Quadrat-Test, um die Fibonacci-Mitgliedschaft zu überprüfen
import math
def is_square(x: int) -> bool:
return math.isqrt(x)**2 == x
n = int(input("Gib eine Zahl ein: "))
if is_square(5*n*n + 4) or is_square(5*n*n - 4):
print(f"{n} ist eine Fibonacci-Zahl")
else:
print(f"{n} ist keine Fibonacci-Zahl")
13. Dreieckszahl Prüfer
Was die Übung will:
Überprüfe, ob n dreieckig ist: n = k(k+1)/2 für eine ganze Zahl k.
Was ist eine Dreieckszahl?
Sie bilden Punkt-Dreiecke: 1, 3, 6, 10, 15, …
Beispiel-Eingabe
15
Beispiel-Ausgabe
15 ist eine Dreieckszahl
Python-Lösung
# Löse k(k+1)/2 = n, indem du k = floor((sqrt(8n+1)-1)/2) überprüfst
import math
n = int(input("Gib eine Zahl ein: "))
k = int((math.isqrt(8*n + 1) - 1) // 2)
print(f"{n} ist eine Dreieckszahl" if k * (k + 1) // 2 == n else f"{n} ist keine Dreieckszahl")
14. Rationale Zahl (Dezimal → Bruch)
Was die Übung will:
Wandle eine Dezimalzahl in einen vereinfachten Bruch p/q um.
Was ist eine rationale Zahl?
Eine Zahl, die als Verhältnis von ganzen Zahlen ausgedrückt werden kann (z.B. 0.75 = 3/4).
Beispiel-Eingabe
0.75
Beispiel-Ausgabe
3/4
Python-Lösung
# Verwende Fraction, um Dezimalzahlen in p/q-Form umzuwandeln und zu vereinfachen
from fractions import Fraction
x = float(input("Gib eine Dezimalzahl ein: "))
print(Fraction(x).limit_denominator())
15. Dreieckszahl Prüfer
Was die Übung will:
Überprüfe, ob eine Zahl dreieckig ist, was bedeutet, dass sie ein gleichseitiges Dreieck bilden kann.
Was ist eine Dreieckszahl?
Dreieckszahlen sind Summen der ersten n natürlichen Zahlen: 1, 3, 6, 10, 15…
Beispiel-Eingabe
10
Beispiel-Ausgabe
10 ist eine Dreieckszahl
Python-Lösung
import math
n = int(input("Gib eine Zahl ein: "))
# Formel: wenn 8n+1 ein perfektes Quadrat ist, dann ist n dreieckig
check = 8 * n + 1
if int(math.isqrt(check))**2 == check:
print(f"{n} ist eine Dreieckszahl")
else:
print(f"{n} ist keine Dreieckszahl")
16. Fibonacci-Folgen-Generator
Was die Übung will:
Generiere die Fibonacci-Folge bis zu n Termen.
Was ist die Fibonacci-Folge?
Es ist eine Folge, in der jede Zahl die Summe der beiden vorherigen ist: 0, 1, 1, 2, 3, 5, 8…
Beispiel-Eingabe
7
Beispiel-Ausgabe
0 1 1 2 3 5 8
Python-Lösung
n = int(input("Gib die Anzahl der Terme ein: "))
a, b = 0, 1
for _ in range(n):
print(a, end=" ")
a, b = b, a + b
17. Summe der Ziffern
Was die Übung will:
Berechne die Summe aller Ziffern in einer gegebenen Zahl.
Was bedeutet das?
Beispiel: Die Ziffern von 1234 sind 1+2+3+4 = 10.
Beispiel-Eingabe
1234
Beispiel-Ausgabe
10
Python-Lösung
n = input("Gib eine Zahl ein: ")
# Wandle jedes Zeichen zurück in int und summiere
s = sum(int(d) for d in n)
print(s)
18. Eine Zahl umkehren
Was die Übung will:
Kehr die Ziffern der gegebenen Zahl um.
Was bedeutet das?
Beispiel: 12345 wird zu 54321.
Beispiel-Eingabe
12345
Beispiel-Ausgabe
54321
Python-Lösung
n = input("Gib eine Zahl ein: ")
# Verwende Slicing, um umzukehren
print(n[::-1])
19. Größter gemeinsamer Teiler (GGT)
Was die Übung will:
Finde die größte Zahl, die zwei ganze Zahlen ohne Rest teilt.
Was ist GGT?
Der größte Teiler, der beiden Zahlen gemeinsam ist. Beispiel: ggt(12, 18) = 6.
Beispiel-Eingabe
12 18
Beispiel-Ausgabe
6
Python-Lösung
import math
a, b = map(int, input("Gib zwei Zahlen ein: ").split())
# Verwende math.gcd für Effizienz
print(math.gcd(a, b))
20. Kleinste gemeinsame Vielfache (kgV)
Was die Übung will:
Finde die kleinste Zahl, die durch beide gegebenen ganzen Zahlen teilbar ist.
Was ist kgV?
Das kleinste gemeinsame Vielfache von zwei Zahlen. Beispiel: kgV(4, 6) = 12.
Beispiel-Eingabe
4 6
Beispiel-Ausgabe
12
Python-Lösung
import math
a, b = map(int, input("Gib zwei Zahlen ein: ").split())
# Formel: kgV(a, b) = abs(a*b) // ggt(a, b)
print(abs(a*b) // math.gcd(a, b))