Um número cíclico é um número de "n" dígitos que, quando multiplicados por 1, 2, 3, ... n, resulta nos mesmos dígitos, mas em uma ordem diferente.
Por exemplo, o número 142.857 é um número cíclico, pois 142.857 x 2 = 285.714, 142.857 x 3 = 428.571, 142.857 x 4 = 571.428 e assim por diante. Dada uma entrada inteira, determine se é um número cíclico emitindo um valor verdadeiro, se for, e um valor falso, se não.
Além disso, para ficar claro, a entrada pode conter 0s iniciais: por exemplo, 0344827586206896551724137931
Isso ocorre porque, se zeros à esquerda não são permitidos em números, 142857 é o único número cíclico em decimal.
Como é código-golfe, a resposta mais curta em bytes vence!
code-golf
number
arithmetic
FantaC
fonte
fonte
Respostas:
05AB1E ,
96 bytesAgradecimentos a Emigna por salvar 3 bytes!
Explicação:
Usa a codificação 05AB1E . Experimente online!
fonte
¦‚˜
?0588235294117647
.0212765957446808510638297872340425531914893617
mencionado nos comentários de outra resposta. Olhando para os números ordenados, eu assumiria que retornaria falso, mas ao remover zeros, ele se torna verdadeiro.Na verdade , 18 bytes
Experimente online! (espera entrada citada)
Explicação:
fonte
Python, 86 bytes
Experimente online!
Introduzir números como cadeias.
fonte
PHP, 64 bytes
Versão Online
fonte
Haskell,
36333245 bytesExemplo de uso:
Eu não acho que esse algoritmo precise de explicação.
PARA MIM
Obrigado por sugestões: Nome genérico para exibição, Laikoni.
Obrigado pela correção: Antony Hatchkins.
EDIT Não, falha em "33".
fonte
<1
vez de==0
? Também aqui está um link do TIO: Experimente online!dc,
2425 bytesImprime "0" se o número não for cíclico, caso contrário "1". Requer que o número seja inserido como uma sequência.
Exemplo de uso:
PARA MIM
Explicação: O mesmo algoritmo que meu envio Haskell.
EDIT Não, falha em "33".
fonte
Mathematica, 81 bytes
Experimente online!
sequência de entrada
Entrada
Saída
fonte
FromDigits
é mais curto queToExpression