Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.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_Prime Factoring_Greatest Common Divisor - Fatal编程技术网

java中使用素因子分解的最大公约数

java中使用素因子分解的最大公约数,java,prime-factoring,greatest-common-divisor,Java,Prime Factoring,Greatest Common Divisor,正如你们所看到的,结果应该是2*2*3,而不是2*2。如何在整个arraylist中查找通用的数字序列,而不是像我的代码那样在arraylist的开头查找?您的while循环只查找两个列表的通用前缀。为了找到所有公共元素,您需要使用两个索引迭代两个列表s: Rozkład na czynniki pierwsze liczby 36=2*2*3*3* Rozkład na czynniki pierwsze liczby 48=2*2*2*2*3* 2*2* 或者更好: ArrayLi

正如你们所看到的,结果应该是2*2*3,而不是2*2。如何在整个arraylist中查找通用的数字序列,而不是像我的代码那样在arraylist的开头查找?

您的while循环只查找两个列表的通用前缀。为了找到所有公共元素,您需要使用两个索引迭代两个
列表
s:

Rozkład na czynniki pierwsze liczby 36=2*2*3*3*
Rozkład na czynniki pierwsze liczby 48=2*2*2*2*3*
2*2*
或者更好:

    ArrayList<Integer> liczbyPierwszeA = new ArrayList<Integer>();
    ArrayList<Integer> liczbyPierwszeB = new ArrayList<Integer>();
List liczbyperwszea=new ArrayList();
List liczbyperwszeb=new ArrayList();

它给出了错误“if(liczbyperwszea.get(indexA)ArrayList。原始
ArrayList
类型可以包含任何对象。@EyeMaze我的错误。我忘了将索引更改为
indexA
。现在修好了,好了,现在可以了。非常感谢你的帮助//是的,我注意到并纠正了问题:)
    int indexA = 0;
    int indexB = 0;
    while (indexA < liczbyPierwszeA.size () && indexB < liczbyPierwszeB.size()) {
        if (liczbyPierwszeA.get(indexA) == liczbyPierwszeB.get(indexB)) {
            Wspolne.add(WspolneLicznik, liczbyPierwszeA.get(indexA));
            indexA++;
            indexB++;
            WspolneLicznik++; // not sure what this counter is for. I kept it just 
                              // in case it's needed
        } else {
            if (iczbyPierwszeA.get(indexA) < liczbyPierwszeB.get(indexB))
                indexA++;
            else
                indexB++;
        }
    }
    ArrayList<Integer> liczbyPierwszeA = new ArrayList<Integer>();
    ArrayList<Integer> liczbyPierwszeB = new ArrayList<Integer>();
    List<Integer> liczbyPierwszeA = new ArrayList<Integer>();
    List<Integer> liczbyPierwszeB = new ArrayList<Integer>();