Wie kann man die Teiler zählen in Java?
void setup() {
alleTeiler (6);
}
int alleTeiler(int z) {
println("Teiler der Zahl: "+z);
for (int i = 1; i <= z; i++) {
if (z % i == 0) {
print(i + " ");
}
}
return (0);
}
dass nicht jeder Teiler ausgegeben wird, sondern stattdessen die gefundenen Teiler gezählt werden und liefere diesen Wert zurück. Überlege und teste, wie viele Teiler diese Methode für eine Primzahl findet.
Ich habe keine Ahnung, wie man die Teiler zählen soll und diesen Wert dann zurückliefet?
Wäre für jede Antwort dankbar!
3 Antworten
du nimmst am anfang der funktion eine variable
die erhöhst du um 1 wenn ein teiler gefunden wurde
die variable gibst du dann zurück am ende der funktion
beim aufrufen der funktion nimmst du die rückgabe in eine variable auf oder gibst es gleich aus .
3 möglichkeiten
int meinzaehler = 0;
meinzaehler++; /* ++ synonym für +1 auf die variable */
meinzaehler = meinzaehler +1; /* meinzaehler soll meinzaehler plus eins werden */
meinzaehler += 1; /* += synonym für = variable + */
Du musst halt eine Variable machen (mit Startwert 0), die Du um 1 erhöhst, wenn Du einen Teiler findest (anstatt des print). Und den Wert dieser Variablen gibst Du halt zurück (anstatt "return (0);").
Dafür sind Variablen da. Will man sich was "merken"? Variable. Will man was zählen? "Variable".
Und der aufrufende Code kann dann wieder eine Variable verwenden, um mit dem Ergebnis weiterzuarbeiten:
int anzahl = alleTeiler(6);
die Du um 1 erhöhst, wenn Du einen Teiler findest
und wie soll man das machen ?
Man addiert 1 zur Variablen. Ich habe Dir sogar hingeschrieben, an welcher Stelle. Dadurch ergibt sich automatisch, dass das nur gemacht wird, wenn i ein Teiler von z ist.
void setup(){
alleTeiler (6);
}
int alleTeiler (int z) {
int summe = 0;
print("Die Zahl " + z + " hat folgende Teiler: " );
for (int i = 1; i <= z; i++) {
if ( z % i == 0) {
summe++;
}
}
return summe;
}
Ja. Die Ausgabe von "Die Zahl hat folgende Teiler" kann jetzt raus, denn Du gibst ja keine aus. Und im aufrufenden Code könntest Du mit dem Funktionsergebnis jetzt was machen, z.B. ausgeben, wieviele Teiler die Zahl hat.
Aber jetzt steht, dass die Zahl 6 0 Teiler hat
Das ist nicht möglich, denn der Code, der oben steht, ist korrekt. Dann musst Du jetzt wieder Deinen aktuellen Code posten, damit man was sehen kann.
Dein Code Beispiel gibt alle Teiler aus. Stattdessen musst du sie zählen.
ich weiß nicht wie man das machen soll... Können Sie mir da vielleicht weiterhelfen?