Java - Фактор Генератор программ следующий фактор метода
Я пытался изменить метод nextfactor какое-то время, чтобы получить желаемый результат. По сути, я должен исключить все четные числа, кроме 2, но все еще не могу это сделать. Код для класса ниже. Любая помощь приветствуется. С уважением
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;
}
}
3 ответа
while (! isDivisible(triedFactor)) {
if(triedFactor == 2) {
triedFactor = triedFactor+1;
} else {
triedFactor = triedFactor+2;
}
}
Использование
triedFactor = triedFactor==2 ? 3 : triedFactor+2;
вместо
triedFactor = triedFactor+1;
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;
}