/**
 * integer arr be divided into pairs
 * return pairs number depend on
 * parameter k : key is a factor of pairs sum multiply element
 * constraints
 * 2<=n<=100 arr size
 * 1<=k<=100 multiply element factor
 * 1<=ar[i]<=100 arr element value
 *
 * @param n
 * @param k
 * @param ar
 * @return
 */
public static int divisibleSumPairs(int n, int k, List<Integer> ar) {
    if (n < 2 || n > 100) {
        return 0;
    }
    if (k < 1 || k > 100) {
        return 0;
    }
    if (ar == null) {
        return 0;
    }
    if (ar.isEmpty()) {
        return 0;
    }
    Random random = new Random();
    int count = 0;
    ArrayList<String> stringArrayList2 = new ArrayList<>();
    while (true) {
        int arrIndex = random.nextInt(ar.size());
        int arrIndexNextSeeds = random.nextInt(ar.size());
        if (!(arrIndexNextSeeds == arrIndex)) {
            Integer i = ar.get(arrIndex);
            Integer i1 = ar.get(arrIndexNextSeeds);
            stringArrayList2.add(arrIndex+"-"+arrIndexNextSeeds+"-"+i+"-"+i1);
        }
        count++;
        if (count > 1000000) {
            break;
        }
    }
    HashSet<String> stringHashSet = new HashSet<>();
    for (String s : stringArrayList2) {
        stringHashSet.add(s);
    }
    ArrayList<String> stringArrayList1 = new ArrayList<>();
    for (String e : stringHashSet) {
        String[] split = e.split("-");
        String s2 = split[2];
        String s3 = split[3];
        int i = Integer.valueOf(s2) + Integer.valueOf(s3);
        int i1 = i % k;
        if (i1 == 0) {
            stringArrayList1.add(e);
        }
    }
    return stringArrayList1.size()/2;
}