public class EclideamAlgorithm { private int nwd; private int combinationOfA; private int combinationOfB; public EclideamAlgorithm(int numberA, int numberB) { int[][] matrix = new int[2][3]; matrix[0][0] = 1; matrix[1][1] = 1; matrix[0][2] = numberA; matrix[1][2] = numberB; while (matrix[0][2] != 0 && matrix[1][2] != 0) { if (matrix[0][2] > matrix[1][2]) { matrix[0][0] = matrix[0][0] - matrix[1][0]; matrix[0][1] = matrix[0][1] - matrix[1][1]; matrix[0][2] = matrix[0][2] - matrix[1][2]; } else { matrix[1][0] = matrix[1][0] - matrix[0][0]; matrix[1][1] = matrix[1][1] - matrix[0][1]; matrix[1][2] = matrix[1][2] - matrix[0][2]; } } if (matrix[0][2] != 0) { nwd = matrix[0][2]; combinationOfA = matrix[0][0]; combinationOfB = matrix[0][1]; } else { nwd = matrix[1][2]; combinationOfA = matrix[1][0]; combinationOfB = matrix[1][1]; } } public int getGCD() { return nwd; } public int getCombinationOfA() { return combinationOfA; } public int getCombinationOfB() { return combinationOfB; } }