/**
* 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
}