考え方
エラトステネスの篩-likeな考え方で解ける.AtCoder - 解法パターンの整理 - 競プロはじめました
以下のループは$O(N \log N)$であることがポイント.
for i in range(N): for j in range(i, N + 1, i): # 処理
回答例
from collections import defaultdict N = int(input()) A = sorted(list(map(int, input().split()))) cnt = defaultdict(int) for a in A: cnt[a] += 1 ans = 0 for a in A: for i in range(a, A[-1] + 1, a): if i in cnt and i // a in cnt: ans += cnt[i] * cnt[i // a] print(ans)