Given a 0-indexed integer array nums of length n and an integer k, return the number of pairs (i, j) where 0 &lt;= i &lt; j &lt; n, such that nums[i] == nums[j] and (i * j) is divisible by k.
&nbsp;
Example 1:

Input: nums = [3,1,2,2,2,1,3], k = 2
Output: 4
Explanation:
There are 4 pairs that meet all the requirements:
- nums[0] == nums[6], and 0 * 6 == 0, which is divisible by 2.
- nums[2] == nums[3], and 2 * 3 == 6, which is divisible by 2.
- nums[2] == nums[4], and 2 * 4 == 8, which is divisible by 2.
- nums[3] == nums[4], and 3 * 4 == 12, which is divisible by 2.


Example 2:

Input: nums = [1,2,3,4], k = 1
Output: 0
Explanation: Since no value in nums is repeated, there are no pairs (i,j) that meet all the requirements.


&nbsp;
Constraints:


	1 &lt;= nums.length &lt;= 100
	1 &lt;= nums[i], k &lt;= 100


class Solution:
    def countPairs(self, nums: List[int], k: int) -> int:
        n=len(nums)
        c=0
        for i in range(0,n):
            for j in range(i+1,n):
                if nums[i]==nums[j] and ((i*j)%k==0):
                    c+=1
        return c
class Solution {
    public int countPairs(int[] nums, int k) {
      HashMap<Integer,List<Integer>> hMap = new HashMap<>();
        int count = 0;
        for(int i = 0 ; i < nums.length ; i++){
            if(!hMap.containsKey(nums[i])){
                List<Integer> l = new ArrayList<>();
                l.add(i);
                hMap.put(nums[i],l);
            }else{
                List<Integer> v = hMap.get(nums[i]);
                for(Integer j : v){
                    if((i*j)%k == 0) count++;
                }
                v.add(i);
                hMap.put(nums[i],v);
            }
        }
        return count;
    }
}
class Solution {
public:
    int countPairs(vector<int>& nums, int k) {
        int count=0;
        for(int i=0;i<nums.size()-1;i++)
        {
            for(int j=i+1;j<nums.size();j++)
                if(nums[i]==nums[j] && i*j%k==0)
                {
                    count++;
                }
        }
        return count;
    }
};
/**
 * @param {number[]} nums
 * @param {number} k
 * @return {number}
 */
var countPairs = function(nums, k) {
    var count = 0;
    for(let i=0; i<nums.length; i++){
        for(let j=i+1; j<nums.length; j++){
            if(nums[i] == nums[j] && (i * j) % k == 0){
                count++;
            }
        }
    }
    return count;
};
Count Equal and Divisible Pairs in an Array