Cho mảng arr[] n phần tử và số k. Nhiệm vụ: tính tích các phần tử chia hết cho k.
Ví dụ 1
Input – arr[] = {10, 11, 55, 2, 6, 7}, K = 11
Output – 605
Giải thích: 11 và 55 chia hết cho 11. Tích = 11 × 55 = 605.
Ví dụ 2
Input – arr[] = {9, 8, 7, 6, 3}, K = 3
Output – 162
Giải thích: 9, 6, 3 chia hết cho 3. Tích = 9 × 6 × 3 = 162.
Thuật toán
- Khởi tạo product = 1.
- Duyệt mảng, nếu arr[i] % k == 0 thì product *= arr[i].
- Trả về product.
Ví dụ code
#include <iostream>
using namespace std;
long long productDivisibleByK(int arr[], int n, int k) {
long long prod = 1;
bool found = false;
for (int i = 0; i < n; i++) {
if (arr[i] % k == 0) {
prod *= arr[i];
found = true;
}
}
return found ? prod : 0; // Trả về 0 nếu không có phần tử nào
}
int main() {
int arr[] = {2, 3, 4, 5, 6};
int n = sizeof(arr) / sizeof(arr[0]);
int k = 2;
cout << "Product: " << productDivisibleByK(arr, n, k) << endl;
return 0;
}
Kết quả
Product: 48
Giải thích: 2, 4, 6 chia hết cho 2. Tích = 2×4×6 = 48.
Lưu ý: Tích có thể rất lớn, nên dùng long long hoặc modulo nếu bài toán yêu cầu.