Cho mảng arr[]. Tính tích tất cả phần tử, sau đó đếm số ước số của tích đó.
Ví dụ
arr = {2, 3} → tích = 6 → ước: 1,2,3,6 → 4 ước
arr = {2, 3, 5} → tích = 30 → ước: 1,2,3,5,6,10,15,30 → 8 ước
Phương pháp
- Tính tích = tích các phần tử mảng.
- Đếm ước: duyệt i từ 1 đến tích, nếu tích % i == 0 → đếm++.
Ví dụ minh họa (C++)
#include <iostream>
using namespace std;
int divisors(int N) {
int result = 0;
for (int i = 1; i <= N; ++i) {
if (N % i == 0) result++;
}
return result;
}
int countmultiples(int arr_1[], int size) {
int temp = 1;
for (int i = 0; i < size; ++i) temp *= arr_1[i];
return divisors(temp);
}
int main() {
int arr_1[] = { 5, 10, 15 };
int size = sizeof(arr_1) / sizeof(arr_1[0]);
cout << "count is " << countmultiples(arr_1, size);
return 0;
}
Đầu ra
count is 16