Dados dois números N e x, encontre o número de dígitos de x cujo produto dos dígitos seja N
limits: N(<10^6) and x(<12)
Sample Input:
8 3
Sample Output:
10
code-golf
number-theory
fR0DDY
fonte
fonte
Respostas:
Python 208 chars
fonte
Golfscript
4231Entrada: espera os números
N
ex
como argumentos da linha de comando (separados por espaço).O programa pode ser testado aqui .
fonte
Code took longer than 5 seconds to run, so it was aborted.
com os parâmetros invertidos. :)x
ultrapassa 4. Por exemplo, se eu executá-lo na minha máquina com os parâmetros3 5
, obtenho o resultado após mais de 30 segundos. Assim, por3 8
que eu acho que poderia ser horas ...Brachylog (2), 13 bytes, desafio de pós-datas de idiomas
Experimente online!
Explicação
Um bom truque de golfe usado aqui é que, ao contrário de quase todos os metapredicados,
ᶜ
não se preocupa com o valor real de.
(que normalmente é usado para construir uma saída para os metapredicados); como tal,.
pode ser usado como qualquer outra variável (salvar um byte porque ele aparece implicitamente antes}
). Não há rotulagens implícitas em nenhum lugar aqui, então tive que adicionar uma rotulagem explícita usando≜
para fornecerᶜ
algo para contar.fonte
Scala 107:
versão não-destruída e sem amigos:
Chamada com saída de depuração:
fonte
Python (ainda trabalhando nele) 164
fonte
C # 128
Esse método C # retorna o número de
x
números de-dígitos cujo produto de dígitos én
. Requer que os namespacesSystem
eSystem.Linq
sejam importados no contexto atual.Versão online: http://ideone.com/0krup
fonte
Haskell 117 chars
fonte
K, 49
.
fonte
J, 40 bytes
Gera todos os
x
números de dois dígitos, converte cada um na base 10, encontre o produto de cada número e teste se cada número é igual ao lado esquerdo e, em seguida, encontre a soma de cada booleano.fonte
Geleia , 12 bytes, desafio de pós-datas de idiomas
Experimente online!
Toma x como argumento da linha de comando e N na entrada padrão.
Explicação
A parte difícil é gerar a lista de números com dígitos x ; o menor número desse tipo é 10 x -1 , o mais alto é 10 x -1. O intervalo aqui é gerado primeiro pela geração do par ( x , x −1), depois levando 10 à potência de ambos e depois gerando o intervalo entre eles. O intervalo inclui os dois pontos de extremidade por padrão; apenas no caso de N ser 0, precisamos remover a extremidade superior do intervalo (que vem primeiro porque é um intervalo "para trás") usando
Ḋ
.fonte