fork download
  1. n=int(input())
  2. l=list(map(int,input().split()))
  3. x=[]
  4. # precalculating every unique possible triplets such that a+b+c is divisible by only one of them
  5.  
  6. for i in range(1,101):
  7. for j in range(i,101):
  8. for k in range(j,101):
  9. c =i+j+k
  10. m = (c%i==0)
  11. m+=(c%j==0)
  12. m+=(c%k==0)
  13. if m==1:
  14. #storing the triplet for further processing
  15. x.append([i,j,k])
  16.  
  17. ans=0
  18. #dictionary or map to store frequency
  19. d={}
  20. for i in range(100):
  21. d[i+1]=0
  22.  
  23. for i in l:
  24. d[i]+=1
  25. e=[]
  26. # for every unique possible triplet
  27. for i in x:
  28. if i[0]==i[1]:
  29. m= d[i[0]]
  30. m=(m*(m-1))//2
  31. m*=d[i[2]]
  32. elif i[1]==i[2]:
  33. m = d[i[1]]
  34. m=(m*(m-1))//2
  35. m*= d[i[0]]
  36. elif i[0]==i[2]:
  37. m = d[i[0]]
  38. m=(m*(m-1))//2
  39. m*= d[i[1]]
  40. else:
  41. m=d[i[0]]*d[i[1]]*d[i[2]]
  42. for v in range(m):
  43. e.append([i[0],i[1],i[2]])
  44. ans+=m*6 # 6 because we can have 6 permutations for 3 integers.
  45.  
  46. print(ans)
  47.  
  48.  
  49.  
  50.  
  51.  
Success #stdin #stdout 0.11s 11308KB
stdin
4
1 2 2 1
stdout
12