"Nhân Ấn độ"
Biết rằng (a * b)%c = ((a%c)*(b%c))%c, ví dụ: (10*3)%4 = 2 và (((10%4)*(3%4)))%4 = 6%4 = 2; trong khi đó giới hạn biểu diễn của long long là cỡ 18 chữ số, hãy tính (a*b)%c khi mà tích (a*b) có thể vượt quá khả năng biểu diễn của long long trong C++.
Trong bài này, số c có thể lên đến 1018, đây là một điều khá tệ vì sau khi % xong, ta nhân lại vẫn có thể tràn số - quá giới hạn biểu diễn của kiểu dữ liệu long long. Để khắc phục điều này, bạn hãy tìm hiểu về phép nhân Ấn độ ở đây - https://cowboycoder.tech/article/phep-nhan-an-do-va-phep-tinh-luy-thua, hoặc bạn liên hệ Mr Toàn để có một trick khá hay cho phép toán này nhé!
Yêu cầu: Tính (a * b)%c
Input:
- Dòng 1 ghi số nguyên dương a
- Dòng 2 ghi số nguyên dương b
- Dòng 3 ghi số nguyên dương c (a,b,c<=1018);
Output: (a * b)%c
Note: Bài này code bằng python thì dễ quá, mất đi tính hấp dẫn trong C++!