#include <bits/stdc++.h>
using namespace std;
int totalValidPairs(vector<int> a, vector<int> b){
unordered_map<int, int> mp1, mp2;
for(int i : a){
mp1[i]++;
}
for(int i : b){
mp2[i]++;
}
int total_count = 0;
for (auto i: mp1){
int curr = i.first, count = 0;
for (int j = curr; j <= 1e6+7; j += curr){
count += mp2[j];
}
total_count += (count * i.second);
}
return total_count;
}
int main() {
vector<int> a = {2, 2, 3, 3, 3, 5, 5};
vector<int> b = {10, 20, 25, 30, 50};
cout << totalValidPairs(a, b);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgdG90YWxWYWxpZFBhaXJzKHZlY3RvcjxpbnQ+IGEsIHZlY3RvcjxpbnQ+IGIpewoJCgl1bm9yZGVyZWRfbWFwPGludCwgaW50PiBtcDEsIG1wMjsKCQoJZm9yKGludCBpIDogYSl7CgkJbXAxW2ldKys7Cgl9CgkKCWZvcihpbnQgaSA6IGIpewoJCW1wMltpXSsrOwoJfQoJCglpbnQgdG90YWxfY291bnQgPSAwOwoJCglmb3IgKGF1dG8gaTogbXAxKXsKCQlpbnQgY3VyciA9IGkuZmlyc3QsIGNvdW50ID0gMDsKCQkKCQlmb3IgKGludCBqID0gY3VycjsgaiA8PSAxZTYrNzsgaiArPSBjdXJyKXsKCQkJY291bnQgKz0gbXAyW2pdOwoJCX0KCQkKCQl0b3RhbF9jb3VudCArPSAoY291bnQgKiBpLnNlY29uZCk7CgkJCgl9CgkKCXJldHVybiB0b3RhbF9jb3VudDsKfQoKaW50IG1haW4oKSB7CgoJdmVjdG9yPGludD4gYSA9IHsyLCAyLCAzLCAzLCAzLCA1LCA1fTsKCXZlY3RvcjxpbnQ+IGIgPSB7MTAsIDIwLCAyNSwgMzAsIDUwfTsKCWNvdXQgPDwgdG90YWxWYWxpZFBhaXJzKGEsIGIpOwoJCglyZXR1cm4gMDsKfQ==