ได้รับอาร์เรย์ N ตัว ต้องการนับคู่ดัชนี (i,j) ที่ i≠j และ arr[i] หาร arr[j] ลงตัว หรือ arr[j] หาร arr[i] ลงตัว
ตัวอย่าง
อินพุต: Arr[] = {2, 4, 3, 6}, N = 4
เอาต์พุต: 3
คำอธิบาย: (2,4), (2,6), (3,6)
อินพุต: Arr[] = {2, 5, 7, 9, 11}, N = 5
เอาต์พุต: 0
แนวทาง
- ลูปซ้อน 2 ชั้น i=0..n-2, j=i+1..n-1
- ตรวจสอบ
arr[i]%arr[j]==0 || arr[j]%arr[i]==0
ตัวอย่างโค้ด C++
#include <bits/stdc++.h>
using namespace std;
int countPairs(int arr[], int n) {
int count = 0;
for (int i = 0; i < n-1; i++) {
for (int j = i+1; j < n; j++) {
if (arr[i] % arr[j] == 0 || arr[j] % arr[i] == 0) {
count++;
}
}
}
return count;
}
int main() {
int Arr[] = {2, 3, 4, 5, 6};
int len = sizeof(Arr) / sizeof(Arr[0]);
cout << "Count of number of pairs: " << countPairs(Arr, len);
return 0;
}
ผลลัพธ์
Count of number of pairs: 3