drunken.panda
Captain
- Registriert
- Juli 2008
- Beiträge
- 3.921
Servus miteinander,
ich möchte gerne folgende Tatsache darstellen. Ich habe eine integer Variable a
und möchte gerne für diese alle ganzzahligen Teiler summieren.
Das Problem ist, dass jedes mal in der while Schleife die Summe der Teiler addiert wird obwohl das per if abfrage nur passieren soll, wenn Modulo von a / i == 0 ist.... Also quasi wenn ich keinen Restwert habe und so weiß, dass es ein ganzzahliger Teiler der Variable a ist.
Was mache ich falsch? Wie bekomme ich es hin, dass
summe_a_teiler = summe_a_teiler + zaehler_a;
nur ausgeführt wird, wenn drüber stehende Bedingung erfüllt ist und nicht bei jedem Schleifendurchlauf?!
Stehe seit Stunden auf dem Schlauch und meine Laune geht gegen 0.
Mein Ansatz sieht wie folgt aus:
public static void main(String[] args) {
int a = InputBox.readInt("int a eingeben");
int summe_a_teiler = 0;
int zaehler_a = 0;
do
{
zaehler_a++;
int rest = a % zaehler_a;
if (rest == 0);
{
summe_a_teiler = summe_a_teiler + zaehler_a;
}
}
while ( zaehler_a < a);
System.out.println(summe_a_teiler);
ich möchte gerne folgende Tatsache darstellen. Ich habe eine integer Variable a
und möchte gerne für diese alle ganzzahligen Teiler summieren.
Das Problem ist, dass jedes mal in der while Schleife die Summe der Teiler addiert wird obwohl das per if abfrage nur passieren soll, wenn Modulo von a / i == 0 ist.... Also quasi wenn ich keinen Restwert habe und so weiß, dass es ein ganzzahliger Teiler der Variable a ist.
Was mache ich falsch? Wie bekomme ich es hin, dass
summe_a_teiler = summe_a_teiler + zaehler_a;
nur ausgeführt wird, wenn drüber stehende Bedingung erfüllt ist und nicht bei jedem Schleifendurchlauf?!
Stehe seit Stunden auf dem Schlauch und meine Laune geht gegen 0.
Mein Ansatz sieht wie folgt aus:
public static void main(String[] args) {
int a = InputBox.readInt("int a eingeben");
int summe_a_teiler = 0;
int zaehler_a = 0;
do
{
zaehler_a++;
int rest = a % zaehler_a;
if (rest == 0);
{
summe_a_teiler = summe_a_teiler + zaehler_a;
}
}
while ( zaehler_a < a);
System.out.println(summe_a_teiler);
Zuletzt bearbeitet: