MOD3 - Phép mod 3 - nhân ấn độ
Dữ liệu vào: Standard input
Dữ liệu ra: Standard output
Giới hạn thời gian: 1.0 giây
Giới hạn bộ nhớ: 128 megabyte

"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++!

Ví dụ

  • input
    817263781289282
    12872637229291232
    2891672783219222
    output
    1718803903942838
Back to Top