<script>
function
countPairs(arr, l, r, n)
{
arr.sort((a, b) => a - b);
let ans = 0;
for
(let i = 0; i < n; i++)
{
let itr1 = upper_bound(arr, 0, arr.length - 1, Math.floor(l / arr[i]));
let itr2 = lower_bound(arr, 0, arr.length - 1, Math.floor(l / arr[i]));
ans += itr1 - itr2;
}
document.write(ans +
"<br>"
);
}
function
lower_bound(arr, low, high, X) {
if
(low > high) {
return
low;
}
let mid = Math.floor(low + (high - low) / 2);
if
(arr[mid] >= X) {
return
lower_bound(arr, low, mid - 1, X);
}
return
lower_bound(arr, mid + 1, high, X);
}
function
upper_bound(arr, low, high, X) {
if
(low > high)
return
low;
let mid = Math.floor(low + (high - low) / 2);
if
(arr[mid] <= X) {
return
upper_bound(arr, mid + 1, high, X);
}
return
upper_bound(arr, low, mid - 1, X);
}
let arr = [4, 1, 2, 5];
let l = 4, r = 9;
let n = arr.length
countPairs(arr, l, r, n);
</script>