Trong hầu hết các hệ mật mã khóa công khai (RSA, Diffie-Hellman, ElGamal, ...), phép toán nền tảng nhất là lũy thừa modulo: tính abmodn một cách hiệu quả bằng thuật toán bình phương lặp (square-and-multiply), thay vì tính trực tiếp ab (có thể là một số cực lớn) rồi mới lấy modulo.
Cho ba số nguyên không âm a,b,n. Hãy tính abmodn.
Quy ước: a0=1 với mọi a (kể cả a=0); nếu n=1 thì kết quả luôn bằng 0.
Một dòng duy nhất chứa ba số nguyên a,b,n cách nhau bởi khoảng trắng (0≤a,b<10100, 1≤n<1018).
Một số nguyên duy nhất - giá trị abmodn.
Ví dụ:
Đầu vào:
2 10 1000
Đầu ra:
24
Đầu vào:
0 0 5
Đầu ra:
1
Đang tải editor...