Desafio:
Você recebe um número base 10. Para cada base, de 10 a contagem decrescente até a base 2:
- Pegue o número de entrada original como uma string de base 10 e remova quaisquer dígitos do número inválidos para a base.
- Interprete a sequência numérica resultante nessa base. Se isso der 1 ou 0, encerre todo o processo.
- Saída ou imprima seu maior fator primo, como número decimal.
A saída pode ser uma matriz dos maiores fatores primos.
Casos de amostra:
Entrada:
987654321
Resultado:
379721
10593529
1091
179
1493
293
19
7
Alternativamente:
[379721,10593529,1091,179,1493,293,19,7]
Isso imprime os maiores fatores primos de 987654321, 87654321 9 = 42374116 10 , 7654321 8 = 2054353 10 e assim sucessivamente até atingir 1 2 , onde para.
code-golf
math
primes
base-conversion
poi830
fonte
fonte
Respostas:
Pitão, 25 bytes
Experimente aqui.
fonte
Pitão - 16 bytes
Experimente online aqui .
Às vezes, existem algumas linhas em branco nas entradas sem todos os dígitos, deixe-me saber se isso é um problema.fonte
MATL ,
1715 bytesIsso leva o número como uma string com aspas, o que é permitido por padrão.
Experimente online!
Explicação
fonte
Julia, 101 bytes
Esta é uma função recursiva que aceita a entrada como uma sequência e retorna uma matriz.
Ungolfed:
fonte
Mathematica, 83 bytes
Função anônima, retorna uma lista. Não é tão complicado, para ser honesto.
fonte
Ruby, 120 bytes
Função recursiva, recebe a entrada como uma string.
fonte
-rprime
sinalizador de linha de comando em vez derequire
.-rprime
não funciona para mim por alguma razão ...Pyke, 19 bytes, não-competitivo
(adicione a função splat_node)Experimente aqui!
Pega entrada entre aspas, sai com um erro.
Explicação (nova linha substituída por \ n):
fonte