Cancelamento anômalo (de Wolfram Alpha):
O cancelamento anômalo é um "cancelamento" dos dígitos de aeb no numerador e denominador de uma fração a / b que resulta em uma fração igual ao original. Observe que, se houver várias contagens, mas diferentes, de um ou mais dígitos no numerador e no denominador, haverá ambiguidade sobre quais dígitos serão cancelados; portanto, é mais fácil excluir esses casos da consideração. Ligação
Em termos simples, digamos que você tenha uma fração a / b. Se você pode cancelar os dígitos da fração para criar outra fração c / digual ao original ( a / b = c / d), o cancelamento anômalo pode ser usado para simplificar a fração.
Seu desafio é criar um programa ou função que insira uma string de fração no formato a/be produza ou retorne um valor verdadeiro se a fração puder ser simplificada usando cancelamento anômalo e, caso contrário, um valor falso. ae bsempre serão números inteiros positivos diferentes de zero. ae bsempre terá dois ou mais dígitos. Além disso, todos os dígitos a partir de qualquer aou bnão será cancelado (você não vai conseguir a entrada 12/21), pelo menos um dígito a partir ae bserão canceladas a cada vez (você não vai conseguir a entrada 43/21), e o resultado final nunca será 0para qualquer um aou b. Seu programa deve cancelar todos os dígitos comuns entre ae b(ou seja, em1231/1234, você deve cancelar a 1, a 2e a 3). Se houver várias possibilidades de cancelamento, escolha primeiro o dígito mais à esquerda (515/25 passa a 15/2 e não 51/2).
Exemplos:
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.
Isso é código-golfe , então o código mais curto em bytes vence!