Encuentra el hoyo 1 aquí .
Haga una quine que, cuando se ejecuta, genera su propio bloque de código fuente varias veces. De hecho, debe generarlo n veces, donde n en el siguiente número primo.
Creo que un ejemplo lo muestra mejor.
[MY QUINE][MY QUINE]
[MY QUINE][MY QUINE][MY QUINE]
[MY QUINE][MY QUINE][MY QUINE][MY QUINE][MY QUINE]
[MY QUINE][MY QUINE][MY QUINE][MY QUINE][MY QUINE][MY QUINE][MY QUINE]
[MY QUINE][MY QUINE][MY QUINE][MY QUINE][MY QUINE][MY QUINE][MY QUINE][MY QUINE][MY QUINE][MY QUINE][MY QUINE]
Cada programa generará su "bloque" base (por lo tanto, [MI QUINE]) las siguientes veces de números primos .
Las funciones integradas para calcular si un número es primo (como una función isPrime) o para determinar el próximo primo (como una función nextPrime ()) no están permitidas.
- Esto significa que las funciones para enumerar el número de divisores no están permitidas
- Las funciones que devuelven la factorización prima tampoco están permitidas.
Esto debería ser una verdadera quine (excepto por algún margen de maniobra, vea el siguiente punto), por lo que no debe leer su propio código fuente.
Debido a que los lenguajes como Java y C # ya están en desventaja, no necesita generar un código totalmente funcional. Si se puede poner en una función (que se llama) y generar la próxima quine, está bien.
Este es el código de golf, ¡así que el código más corto gana!