Interesting Pairs (DIVPAIRS), Starters 13 (26 sep)

I tried this solution but idk why it’s failing test cases. Can anyone look it up?

import math
import os 
import collections
from itertools import permutations, combinations


for _ in range(int(input())):
    n = int(input())
    arr = list(map(int, input().split()))
    c = combinations(arr, 2)
    count = 0
    for a,b in tuple(c):
        prod = a*b 
        den = (arr.index(a)+1) * (arr.index(b)+1)
        if prod%den == 0:
            count += 1 
            
    print(count)

Even I considered the possibility of duplicate elements and modified the above code as follows:

import math
import os 
import collections
from itertools import permutations, combinations


for _ in range(int(input())):
    n = int(input())
    arr = list(map(int, input().split()))
    c = combinations(arr, 2)
    count = 0
    index = list((i+1,j+1) for ((i,_),(j,_)) in combinations(enumerate(arr), 2))
    values = list(k for k in combinations(arr,2))
    
    for x,y in zip(values, index):
        if (x[0]*x[1]) % (y[0]*y[1]) == 0:
            count += 1 
            
    print(count)

This code is passing a few test cases but showing Runtime error for rest of them.
Can anyone suggest modifications or is my code completely wrong?

1 Like