public int Solution(int[] A, int[] B) { var countPairs = 0; var gcdProvider = new Gcd(); for (int i = 0; i < A.Length; i++) { var gcd = gcdProvider.GcdBinary(A[i], B[i], 1); var residueA = A[i] / gcd; var residueB = B[i] / gcd; if ((gcd % residueA == 0) && (gcd % residueB == 0)) { countPairs++; } } return(countPairs); }