Hủy bỏ bất thường (từ Wolfram Alpha):
Hủy bỏ bất thường là "hủy" các chữ số của a và b trong tử số và mẫu số của một phân số a / b dẫn đến một phân số bằng với bản gốc. Lưu ý rằng nếu có nhiều nhưng số lượng khác nhau của một hoặc nhiều chữ số trong tử số và mẫu số thì có sự mơ hồ về việc hủy các chữ số nào, do đó, đơn giản nhất là loại trừ các trường hợp đó khỏi xem xét. Liên kết
Nói một cách đơn giản, hãy nói rằng bạn có một phần nhỏ a / b. Nếu bạn có thể hủy bỏ các chữ số trong phân số để tạo một phân số khác c / dbằng với gốc ( a / b = c / d), hủy bỏ bất thường có thể được sử dụng để đơn giản hóa phân số.
Thách thức của bạn là tạo ra một chương trình hoặc hàm nhập chuỗi phân số ở dạng a/bvà xuất hoặc trả về giá trị trung thực nếu phân số có thể được đơn giản hóa bằng cách sử dụng hủy bỏ dị thường và ngược lại là giá trị giả. avà bsẽ luôn là số nguyên dương khác không. avà bsẽ luôn có hai hoặc nhiều chữ số. Ngoài ra, tất cả các chữ số từ một trong hai ahoặc bsẽ không bị hủy (Bạn sẽ không nhận được đầu vào 12/21), ít nhất một chữ số từ avà bsẽ bị hủy mỗi lần (Bạn sẽ không nhận được đầu vào 43/21) và kết quả cuối cùng sẽ không bao giờ 0cho ahoặc b. Chương trình của bạn phải hủy bỏ tất cả các chữ số phổ biến giữa avà b(ví dụ: trong1231/1234, bạn phải hủy bỏ a 1, a 2và a 3). Nếu có nhiều khả năng hủy, trước tiên hãy chọn chữ số ngoài cùng bên trái (515/25 trở thành 15/2 chứ không phải 51/2).
Ví dụ:
Input Output Why
1019/5095 true Remove the 0 and the 9 from both sides of the fraction to get 11/55, which is equivalent.
16/64 true Remove the 6 from both sides, and get 1/4.
14/456 false Remove the 4s. 14/456 is not equal to 1/56.
1234/4329 false Remove the 2s, 3s, and 4s. 1234/4329 is not equal to 1/9.
515/25 false Remove the first 5 from each side. 15/2 is not equal to 515/25.
Đây là mã golf , vì vậy mã ngắn nhất tính bằng byte sẽ thắng!