Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建因子生成器程序_Java - Fatal编程技术网

Java 创建因子生成器程序

Java 创建因子生成器程序,java,Java,好的,我在学校已经做了一个星期的这个项目,我似乎不明白为什么大多数数字都有效,但由于某些原因,像36或108这样的数字不起作用。我想知道是否有人能找出原因。谢谢大家! public class FactorGenerator { public FactorGenerator(int a) { number = a; factor = 2; } public int nextFactor() // Finds the next facto

好的,我在学校已经做了一个星期的这个项目,我似乎不明白为什么大多数数字都有效,但由于某些原因,像36或108这样的数字不起作用。我想知道是否有人能找出原因。谢谢大家!

public class FactorGenerator {
    public FactorGenerator(int a) {
        number = a;
        factor = 2;

    }

    public int nextFactor() // Finds the next factor
    {
        number = (number / factor);
        return factor;

    }

    public boolean hasMoreFactors() // Uses loops and decisions to find if there
                                    // are more factors
    {
        boolean hasMoreFactors = false;
        done = false;
        if (factor < number) {
            while (!done) {
                if (number % factor != 0) {
                    factor++;
                }

                else {
                    done = true;
                    hasMoreFactors = true;
                }
            }
        }
        return hasMoreFactors;
    }

    private int number; // Instance Fields
    private int factor;
    private boolean done;
}
公共类FactorGenerator{
公共发电商(INTA){
数字=a;
系数=2;
}
public int nextFactor()//查找下一个因子
{
数字=(数字/系数);
回报系数;
}
public boolean hasMoreFactors()//使用循环和决策查找是否存在
//还有更多的因素
{
布尔hasMoreFactors=false;
完成=错误;
如果(系数<数字){
而(!完成){
如果(数字百分比系数!=0){
因子++;
}
否则{
完成=正确;
hasMoreFactors=true;
}
}
}
回归因素较多;
}
私有整数;//实例字段
私人智力因素;
私有布尔完成;
}

你很接近!您不需要在
nextFactor()
中修改
number
变量,只需增加
因子
变量:

public int nextFactor()
{
    return factor++;
}
进行更改,运行以下命令:

FactorGenerator gen = new FactorGenerator(36);
while (gen.hasMoreFactors())
    System.out.println(gen.nextFactor());
收益率:

二,

三,

四,

六,

九,

十二,

十八

三十六


此输出忽略系数
1
。如果在
FactorGenerator
构造函数中将
factor
初始化为
1
,您将得到完整的因子列表。

您会得到什么错误?如果没有错误,您会得到什么输出?您希望得到什么输出?显示如何调用这些方法对于36,这将给出
2,2,3,3
。您想要的输出是其他东西吗?这些都是因素,对吗?