Giới thiệu
Cho mảng A[], chỉ số trái L, chỉ số phải R và số nguyên tố P. Tính tích các phần tử từ vị trí L đến R (tính từ 1) và lấy modulo P.
Ví dụ
Input: A[] = {1,2,3,4,5,6}, P=29, L=2, R=6 → Output: 24
Input: A[] = {1,2,3,4,5,6}, P=113, L=2, R=5 → Output: 7
Phương pháp
- Nhập mảng, L, R, P
- Duyệt từ L đến R (chuyển sang chỉ số 0-based: L-1, R-1)
- Nhân dồn vào biến
ans, mỗi lần lấy modulo P - Trả về kết quả
Thuật toán
Hàm calculateProduct(A, L, R, P):
L = L - 1; R = R - 1
ans = 1
Với i từ L đến R:
ans = ans * A[i]
ans = ans % P
Trả về ans
Hàm main:
A = {1,2,3,4,5,6}, P=29, L=2, R=6
In calculateProduct(A, L, R, P)
Code C
#include <stdio.h>
int calculateProduct(int A[], int L, int R, int P) {
int i;
L = L - 1; // Chuyển sang 0-based index
R = R - 1;
int ans = 1;
for (i = L; i <= R; i++) {
ans = ans * A[i];
ans = ans % P;
}
return ans;
}
int main() {
int A[] = {1, 2, 3, 4, 5, 6};
int P = 29;
int L = 2, R = 6;
printf("%d\n", calculateProduct(A, L, R, P));
return 0;
}
Kết quả
24