Para ser justos, esto se basa en una pregunta de StackExchange, pero es una buena pregunta.
El desafío es bastante simple:
- Tomar una cadena de números
- Encuentra e imprime el número primo contiguo más grande en la cadena
Puntuación:
- El menor número de personajes gana.
- Víctor probablemente será una entrada de golfscript, pero no lo consideraremos en contra de ellos, porque todos nos divertimos y aprendemos cosas, ¿verdad?
- El ganador será premiado cuando note que en realidad no he marcado el botón verde.
Suposiciones
- La cadena es solo números
- Si la cadena contiene letras, puede tener un comportamiento indefinido
- La cadena contiene al menos 1 primo
- Si la cadena no contiene 1 número primo válido, puede tener un comportamiento indefinido
- La velocidad no es una restricción.
- Use un algoritmo principal más corto sobre uno más rápido.
- Si su entrada finalmente termina, está bien, solo asegúrese de que pueda suceder antes de la muerte por calor del universo.
- Se puede suponer que la longitud de la cadena tiene menos de 15 caracteres.
Por ejemplo:
>> 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.
Posibles implementaciones:
- Encuentre todas las subcadenas de la entrada, verifique si son primos. - Legostormtroopr (original)
- Encuentre todos los enteros menos que la entrada, verifique si están en la entrada y luego verifique si es primo - Ben Reich
- Tome una lista de todos los números primos menos que la entrada, verifique si está en la entrada - daniero