Seu trabalho é considerar esse número como entrada (embora também deva funcionar com qualquer outro número):
18349570345710975183495703457109751834957034571097518349570345710975183495703457109761834957034571097518349570345710975183495703457109751834957034571097518349570345710976183495703457109751834957034571097518349570345710975183495703457109751834957034571097618349570345710975183495703457109751834957034571097518349570345710975183495703457109761834957034571097518349570345710975183495703457109751834957034571097518349570345710976183495703457109751834957034571097518349570345710975183495703457109751834957034571097618349570345710975183495703457109751834957034571097518349570345710975183495703457109761834957034571097518349570345710975183495703457109751834957034571097518349570345710976183495703457109751834957034571097518349570345710975183495703457109751834957034571097618349570345710975183495703457109751834957034571097518349570345710975183495703457109761834957034571097518349570345710975183495703457109751834957034571097518349570345710976183495703457109751834957034571097518349570345710975183495703457109751834957034571097618349570345710975183495703457109751834957
e encontre o menor período, neste caso:
1834957034571097518349570345710975183495703457109751834957034571097518349570345710976
Boa sorte e divirta-se!
Esclarecimentos :
- O número de entrada possui no mínimo um período e um período parcial
- O período começa sempre no início do número de entrada
- Período significa, neste caso, uma sequência de números que se repete.
>
está voltado para o lado errado.Respostas:
CJam,
2016 bytesLê de STDIN. Experimente online.
O código acima exigirá memória O (n 2 ) , em que n é o comprimento da entrada. Ele vai trabalhar com 2 16 dígitos, contanto que você tem memória suficiente.
Isso pode ser corrigido pelo custo de cinco bytes extras:
Exemplo de execução
Como funciona
Para a entrada Q, a ideia é repetir o primeiro caractere len (Q) vezes e verificar se o índice de Q no resultado é 0. Se não estiver, repita os dois primeiros caracteres len (Q) vezes, etc.
fonte
Regex (sabor .NET),
2322 bytesIsso corresponderá ao período necessário como uma substring.
Teste aqui.
Como funciona?
fonte
aabaabaab
, provavelmente corresponderáa
porque se repete. Ainda não encontrei uma maneira de resolvê-lo no PCRE. Dennis tentou uma resposta agora excluída, mas essa também não funcionou totalmente. Btw, você não precisag
.Python 60
s
é a sequência de dígitospor exemplo:
fonte
Pitão , 14 caracteres
Explicação:
Essencialmente, ele gera todas as seqüências iniciais da entrada, repete-se uma
len(z)
vez e vê sez
a entrada está dentro da sequência resultante.Esta não é uma resposta válida, mas um recurso foi adicionado recentemente ao Pyth, depois que a pergunta foi feita, que permite uma solução de 12 caracteres:
Isso usa o filtro no recurso inteiro.
fonte
Japonês , 8 bytes
Tente
-2 bytes graças a Shaggy!
JS Transpilado Explicado:
fonte
å+ æ@¶îX
Java 8, 125 bytes
Recebe entrada como uma sequência, pois não há uma maneira razoável de representar um número de mais de 1000 dígitos em Java que não seja uma sequência (No BigInteger, por favor).
Experimente online!
fonte
String
por var. -3 bytes