O algoritmo euclidiano é um algoritmo amplamente conhecido para calcular o maior divisor comum (MDC) de dois números inteiros positivos.
O algoritmo
Para os propósitos deste desafio, o algoritmo é descrito abaixo:
Exiba as duas entradas como linhas adjacentes de um determinado caracter,
por exemplo, uma entrada de3,4pode ser representada pelas linhas adjacentes000e0000Transforme os primeiros
length(short_line)caracteres na linha mais longa em outro, diga-
agora que parece000e---0Elimine os primeiros
length(short_line)caracteres na linha mais longa.
agora000,0Repetir os passos 2 e 3 até que os dois têm a mesma duração, utilizando as linhas mais curtas e mais longas depois de cada iteração, por exemplo
000,0
-00,0
00,0
-0,0
0,0- Você pode optar por parar aqui ou continuar a iteração e transformar uma das linhas em uma linha vazia.
Cada uma dessas etapas deve ser separada por um intervalo entre 0,3s e 1,5s.
O desafio
Escreva um programa que, dados dois números naturais como entrada, crie uma saída exatamente igual à saída do algoritmo acima. Você pode usar outros caracteres ASCII imprimíveis que não sejam espaços em branco além de 0e -, mas seja consistente e use apenas dois caracteres. Você também pode usar algoritmos alternativos, desde que a saída, incluindo o tempo, seja exatamente a mesma que seria produzida pelo algoritmo acima.
Exemplos
Este é um exemplo com entrada 24,35, que são coprimes, portanto seu GCD é 1.
Este é um exemplo com entrada 16,42, que possui o GCD 2.
Regras
- Este é um código de golfe , então os bytes mais curtos vencem
- Aplicam-se brechas padrão
- Você pode assumir que a entrada seja um número inteiro decimal positivo
Esclarecimentos
- As linhas que representam os números precisam permanecer em sua ordem original, ou seja, a primeira e a segunda linhas do primeiro "quadro" exibido precisam ser a primeira e a segunda linhas, respectivamente, em todos os quadros subsequentes.
- Depois que o algoritmo termina, nenhuma entidade visível adicional deve aparecer. No entanto, isso também significa que não há problema em deixar as linhas em branco, se você garantir que o último "quadro" seja exibido pelo menos na mesma quantidade de tempo que todos os outros quadros antes de apagar.
:-)

