Wie berechne ich die Summe natürlicher Zahlen durch eine bestimmte Zahl?
Aufgabe 1a:
Geben Sie in dieser Funktion die Summe der ersten `n` natürlichen Zahlen (exklusive der Null) zurück, die durch `m` teilbar sind.
Mein Code + Ergebnisausgabe:
Also ich dachte erst, dass man bei dieser Aufgabe eine Schleife schreiben soll, welche alle natürlichen Zahlen n auf Teilbarkeit prüft (Zahlen 1 bis n durch m teilbar) und diese dann addieren. Bei n = 5, m = 2, wäre das dann 6, weil einmal die 4 durch 2 teilbar ist und einmal die 2 -> 4+2 = 6. Wobei mein Code schon mal nicht 6 wiedergibt, sondern 5.
Aber viel verwirrender finde ich aber, dass das Ergebnis 30 sein soll, was bedeutet das meine komplette Denkweise für diese Aufgabe irgendwie falsch sein muss. Hilfe? Irgendwelche Tipps was ich hier machen muss? Die erwartete 30 verwirrt mich sehr.
3 Antworten
Du hast einen Verständnisfehler. Du sollst nicht die Zahlen zwischen 1 und 5 summieren, die durch 2 teilbar sind, sondern du sollst die ersten fünf Zahlen, die durch 2 teilbar sind, summieren. Also 2 + 4 + 6 + 8 + 10.
Warum bei deinem Code 5 rauskommen soll, kann ich mir aber ehrlich gesagt nicht erklären. Eigentlich müsste bei dem Code 2 rauskommen, weil sum bei jeder gefundenen Zahl um 1 erhöht wird und die Schleife von 1 bis 4 läuft und da theoretisch die 2 und die 4 finden müsste. Sind zwei Zahlen, also Ergebnis 2.
Du sollst die zahlen aufsummieren.
und du brauchst die ersten 5 zahlen die durch 2 teilbar sind.
Das sind:
2 4 6 8 und 10
Summe:
30
Mach das aufm zettel oder im kopf mal für 6 und 3. Also die ersten 6 zahlen die durch 3 teilbar sind. und dessen summe.
Nimm dir ggf. noch ein paar weitere beispiel um gemeinsamkeiten zu endecken.
Hallo,
es handelt sich um die Summe m*(1+2+...+n).
Für die Summe der Zahlen von 1 bis n gibt es den kleinen Gauß, also die Summenformel (n/2)*(n+1.
Somit m*n/2*(n+1) sollte das richtige Ergebnis liefern.
In Deinem Fall: 2*5/2*(5+1)=5*6=30.
Herzliche Grüße,
Willy
So kann man es auch machen. XD und ist sogar noch effizienter weil man sich ne schleife spaart.