Trova Hole 1 qui .
Crea un quine che, quando eseguito, genera più volte il proprio blocco di codice sorgente. In effetti, deve essere emesso n volte, dove n nel prossimo numero primo.
Penso che un esempio lo mostri meglio.
[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]
Ogni programma emetterà il suo "blocco" di base (quindi [MY QUINE]) il numero primo successivo successivo .
Le funzioni integrate per calcolare se un numero è primo (come una funzione isPrime) o per determinare il primo primo (come una funzione nextPrime ()) non sono consentite.
- Ciò significa che le funzioni per elencare il numero di divisori non sono consentite
- Le funzioni che restituiscono la scomposizione in fattori primi sono ugualmente vietate
Questo dovrebbe essere un vero quine (ad eccezione di qualche margine di manovra, vedi punto successivo), quindi non dovresti leggere il tuo codice sorgente.
Dato che linguaggi come Java e C # sono già svantaggiati, non è necessario generare un codice totalmente funzionante. Se potesse essere messo in una funzione (che si chiama) e produrre il prossimo quine, sei a posto.
Questo è code-golf, quindi vince il codice più corto!