Given an array A[] and positive integer K, the task is to count total number of pairs in the array whose sum is divisible by K.
Note : This question is generalised version of this
Examples:
Input : A[] = {2, 2, 1, 7, 5, 3}, K = 4
Output : 5
Explanation :
There are five pairs possible whose sum
is divisible by '4' i.e., (2, 2),
(1, 7), (7, 5), (1, 3) and (5, 3)
Input : A[] = {5, 9, 36, 74, 52, 31, 42}, K = 3
Output : 7
classSolution {publicint[] pairSumDivByK(int[] A,int K) {// Map of (Remainder after % K) -> FrequencyMap<Integer,Integer> map =newHashMap<>();int count =0;for (int x : A) {int mod = x % K;int pairValue = K - mod;if (map.containsKey(pairValue)) count +=map.get(pairValue);map.put(mod,map.getOrDefault(mod,0) +1); }return count; }}