Ich versuche schon seit einiger Zeit, die nextfactor-Methode zu ändern, um das gewünschte Ergebnis zu erzielen. Im Grunde soll ich alle geraden Zahlen ausschließen, außer 2, aber ich bin immer noch nicht in der Lage, es zu tun. Der Code für die Klasse ist unten. Für jede Hilfe bin ich dankbar. Mit freundlichen Grüßen
public class FactorGenerator
{
private int number;
public FactorGenerator(int num)
{
// initialise instance variables
number = num;
if (number <= 2) {
System.out.println("Wrong argument");
}
}
public boolean hasMoreFactors()
{
if (number >= 2) {
return true;
} else {
return false;
}
// return (number >= 2);
}
public boolean isDivisible(int otherNumber)
{
if (number % otherNumber == 0) {
return true;
} else {
return false;
}
}
/**
* Determine next factor.
* pre-condition: call only if hasMoreFactors
* returns true
*
* @return a factor of the object's number
*/
public int nextFactor()
{
int triedFactor = 2;
if(number % nextFactor == 0)
while (! isDivisible(triedFactor)) {
triedFactor = triedFactor+1;
}
number = number / triedFactor;
return triedFactor;
}
}