Mã hóa thông điệp
Có một ngày, Anh Hiếu nhận được một thông điệp bí ẩn. Anh biết rằng thông điệp này đã bị mã hóa bằng phương pháp mà chỉ những ai thân quen với Anh Hiếu mới có thể giải mã. Thông điệp được mã hóa bởi phương pháp như sau:
\(E(x) = (a \times x + b) mod\) \(m\)
Trong đó:
- \(x\) là chỉ số của từng ký tự trong bảng chữ cái.
- \(a\) và \(b\) là các tham số mã hóa mà chỉ có Anh Hiếu và những người thân thiết mới biết.
- \(m\) là \(26\) vì bảng chữ cái tiếng Anh có đúng \(26\) ký tự.
Ví dụ thông điệp là từ love
với phương pháp mã hóa trên giả sử ta dùng dùng tham số \(a = 5\) và \(b = 8\):
Chuyển các kí tự thành số: \(l = 11, o = 14, v = 21, e = 4\)
Áp dụng công thức:
- \(E(x) = (5 \times x + 8) mod\) \(26\)
- \(l: E(11) = 11 (l)\)
- \(o: E(14) = 0 (a)\)
- \(v: E(21) = 9 (j)\)
- \(e: E(4) = 2 (c)\)
Vậy chúng ta được từ lajc
là từ đã được mã hóa.
Yêu cầu: Vì bạn là người thân của anh Hiếu nên hãy viết chương trình nhận chuỗi đã mã hóa cùng với hai tham số \(a\) và \(b\) sau đó tiến hành giải mã.
INPUT FORMAT
- Một dòng chứa chuỗi ký tự đã được mã hóa bằng phương pháp nói trên (chuỗi không có khoảng trắng và thuộc bảng chữ cái tiếng anh viết thường).
- Hai số nguyên dương \(a\) và \(b\), lần lượt là các tham số, thỏa mãn điều kiện gcd(a, 26) = 1.
OUTPUT FORMAT
- Một dòng chứa chuỗi đã giải mã.
Ví dụ 1:
Input
lajc
5 8
Output
love
Ví dụ 2:
Input
hellraeuc
5 8
Output
fullhouse
Lời giải bài tập này: Tại đây
Group giải đáp thắc mắc: Lập trình 24h
Fanpage CLB: CLB lập trình Full House- Việt Nam
Youtube: CLB Lập Trình Full House
Comments