【发布时间】:2016-12-21 20:47:39
【问题描述】:
我已经让代码工作了,它是一个主要的分解方法类和测试器。它可以很好地打印出代码,但我不得不返回一个零值,因为该方法是一个整数方法。
public class FactorGenerator{
private int num;
public FactorGenerator(int numberToFactor){
num = numberToFactor;
}
public int nextFactor(){
for(int i = 2; i <= num;){
if (num%i==0){
num = num/i;
System.out.println(i);
}
else{
i++;
}
}
return 0;
}
public boolean hasMoreFactors(){
for(int i = 1; i < num; i++){
if(num % i == 0){
return true;
}
}
return false;
}
}
这是我正在使用的测试仪,无法更改,必须保持不变:
import java.util.Scanner;
public class FactorPrinter{
public static void main(String [] args){
Scanner in = new Scanner(System.in);
System.out.print("Enter a number to Factor:");
int numberToFactor = in.nextInt();
System.out.println("You chose: "+numberToFactor+" to factor.");
FactorGenerator fg = new FactorGenerator(numberToFactor);
while (fg.hasMoreFactors())
System.out.println(fg.nextFactor());
}
}
当我输入 150 时,它会打印 2,3,5,5,0 无论如何要删除 0 吗?
【问题讨论】:
标签: java int factorization