Para ser justo, isso é baseado em uma pergunta do StackExchange - mas é uma boa pergunta.
O desafio é bastante simples:
- Pegue uma sequência de numerais
- Encontre e imprima o maior número primo contíguo na sequência
Pontuação:
- O menor número de personagens vence.
- Victor provavelmente será um participante do golfscript, mas não vamos defender isso contra eles, porque todos nos divertimos e aprendemos as coisas, certo.
- O vencedor é premiado quando percebo que não marquei o botão verde.
Premissas:
- A string é apenas números
- Se a sequência contiver letras, você poderá ter um comportamento indefinido
- A cadeia contém pelo menos 1 prime
- Se a sequência não contiver 1 número primo válido, você poderá ter um comportamento indefinido
- A velocidade não é uma restrição
- Use um algoritmo principal mais curto do que um mais rápido.
- Se a sua entrada terminar, tudo bem, apenas certifique-se de que seja provável que aconteça antes da morte pelo calor do universo.
- O comprimento da cadeia pode ser assumido com menos de 15 caracteres
Por exemplo:
>> Input: 3571
<< Output: 3571
>> Input: 123
<< Output: 23
>> Input: 1236503
<< Output: 236503
>> Input: 46462
<< Output: 2
>> Input: 4684
<< Output: ValueError: max() arg is an empty sequence
>> Input: 460
<< Output: 0 # Note, zero is not a prime, but the above string has no valid prime
>> Input: 4601
<< Output: 601
>> Input: "12 monkeys is a pretty good movie, but not as good as se7en"
<< Output: ValueError: Fight Club was also good, I find Brad Pitt to be a consistantly good actor.
Possíveis implementações:
- Encontre todas as substrings da entrada, verifique se elas são primárias. - Legostormtroopr (original)
- Encontre todos os números inteiros abaixo da entrada, verifique se estão na entrada e verifique se é primo - Ben Reich
- Pegue uma lista de todos os números primos menores que a entrada, verifique se está na entrada - daniero