Ich hab mir eine Aufgabe auf http://www.programmieraufgaben.ch angeschaut und versucht, zu lösen. Sie sieht wie folgt aus:
Schreiben Sie ein Programm, welches überprüft ob eine natürliche Zahl defiziente ist oder nicht.
Eine natürliche Zahl heißt defizient, wenn ihre echte Teilersumme (die Summe aller Teiler ohne die Zahl selbst) kleiner ist als die Zahl selbst. Ist die Teilersumme dagegen gleich der Zahl, spricht man von einer vollkommenen Zahl, ist sie groeßer, so spricht man von einer abundanten Zahl.
z.B : Eingabe: 80
Ausgabe: 80 ist keine defiziente Zahl [ 1 + 2 + 4 + 5 + 8 + 10 + 16 + 20 + 40 = 106 ].
An sich ist die Frage gar nicht schwierig, aber beim Programmieren kommt bei mir immer das Falsche raus. 80 soll keine defiziente Zahl sein, aber ich krieg immer das Gegenteil!?
Mein Code:
Bitte helft einem dummen Menschen bei der Fehlersuche. Ich steh auf dem Schlauch...
Schreiben Sie ein Programm, welches überprüft ob eine natürliche Zahl defiziente ist oder nicht.
Eine natürliche Zahl heißt defizient, wenn ihre echte Teilersumme (die Summe aller Teiler ohne die Zahl selbst) kleiner ist als die Zahl selbst. Ist die Teilersumme dagegen gleich der Zahl, spricht man von einer vollkommenen Zahl, ist sie groeßer, so spricht man von einer abundanten Zahl.
z.B : Eingabe: 80
Ausgabe: 80 ist keine defiziente Zahl [ 1 + 2 + 4 + 5 + 8 + 10 + 16 + 20 + 40 = 106 ].
An sich ist die Frage gar nicht schwierig, aber beim Programmieren kommt bei mir immer das Falsche raus. 80 soll keine defiziente Zahl sein, aber ich krieg immer das Gegenteil!?
Mein Code:
Java:
public class Runner {
public static void main(String[] args) {
Test t=new Test();
System.out.println(t.Ueberpruefer(80));
}
}
---------------------------------------------------------------------------------------------------
public class Test {
public String Ueberpruefer(int zahl)
{ for(int i=1; i<=zahl; i++)
{
int sum=0;
if(zahl%i==0)
sum+=i;
sum=sum-zahl;
if(sum>zahl)
{ return "Die Zahl ist nicht defizient!"; }
}return "Die Zahl ist defizient";}
}
Bitte helft einem dummen Menschen bei der Fehlersuche. Ich steh auf dem Schlauch...
Zuletzt bearbeitet von einem Moderator: