Trouvez le trou 1 ici .
Créez une quine qui, lorsqu'elle est exécutée, génère plusieurs fois son propre bloc de code source. En fait, il doit le sortir n fois, où n dans le prochain nombre premier.
Je pense qu'un exemple le montre le mieux.
[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]
Chaque programme sortira son "bloc" de base (donc [MA QUINE]) les prochaines fois en nombre premier .
Les fonctions intégrées pour calculer si un nombre est premier (comme une fonction isPrime) ou pour déterminer le nombre premier suivant (comme une fonction nextPrime ()) ne sont pas autorisées.
- Cela signifie que les fonctions pour répertorier le nombre de diviseurs ne sont pas autorisées
- Les fonctions qui renvoient la factorisation principale sont également interdites
Cela devrait être une vraie quine (sauf pour une certaine latitude, voir le point suivant), donc vous ne devriez pas lire votre propre code source.
Parce que les langages comme Java et C # sont déjà désavantagés, vous n'avez pas besoin de sortir du code totalement fonctionnel. Si elle pouvait être placée dans une fonction (qui est appelée) et sortir le quine suivant, vous êtes bon.
C'est le code-golf, donc le code le plus court gagne!