2 Stimmen

Java - Factor Generator Programm nextfactor Methode

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;
}
        }

1voto

maaartinus Punkte 42477

Verwenden Sie

triedFactor = triedFactor==2 ? 3 : triedFactor+2;

anstelle von

triedFactor = triedFactor+1;

1voto

mR_fr0g Punkte 8084
while (! isDivisible(triedFactor)) {
    if(triedFactor == 2) {
      triedFactor = triedFactor+1;
    } else {
      triedFactor = triedFactor+2;
    }
}

-3voto

Damir Punkte 51969
Exclude all even except 2 ? This is code

public ArrayList GetExeptEven(int upperBound){
    ArrayList list=new ArrayList();
    list.add(1);
    list.add(2);
    for(int i=3;i<=upperBound;i=i+2)
    list.add(i);

    return list;
    }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X