Apparentemente si! In tre semplici passaggi.
Passo 1
Sia f ( n ) la funzione di conteggio dei primi (numero di numeri primi minore o uguale a n ).
Definire la sequenza intera s ( n ) come segue. Per ogni numero intero positivo n ,
- Inizializza da t a n .
- Finché t non è né primo né 1, sostituire t con f ( t ) e iterare.
- Il numero di iterazioni è s ( n ).
Il processo iterativo termina perché f ( n ) < n per tutto n .
Si consideri ad esempio n = 25. Inizializziamo t = 25. Dato che questo non è un numero primo né 1, calcoliamo f (25), che è 9. Questo diventa il nuovo valore per t . Questo non è un numero primo né 1, quindi continuiamo: f (9) è 4. Continuiamo di nuovo: f (4) è 2. Dato che questo è un numero primo, ci fermiamo qui. Abbiamo eseguito 3 iterazioni (da 25 a 9, quindi a 4, quindi a 2). Quindi s (25) è 3.
I primi 40 termini della sequenza sono i seguenti. La sequenza non è in OEIS.
0 0 0 1 0 1 0 2 2 2 0 1 0 2 2 2 0 1 0 3 3 3 0 3 3 3 3 3 0 3 0 1 1 1 1 1 0 2 2 2
Passo 2
Dato un numero intero dispari positivo N , costruisci un array N × N (matrice) avvolgendo la sequenza finita s (1), s (2), ..., s ( N 2 ) per formare una spirale quadrata verso l'esterno . Ad esempio, dato N = 5 la spirale è
s(21) s(22) s(23) s(24) s(25)
s(20) s(7) s(8) s(9) s(10)
s(19) s(6) s(1) s(2) s(11)
s(18) s(5) s(4) s(3) s(12)
s(17) s(16) s(15) s(14) s(13)
o, sostituendo i valori,
3 3 0 3 3
3 0 2 2 2
0 1 0 0 0
1 0 1 0 1
0 2 2 2 0
Passaggio 3
Rappresenta l'array N × N come un'immagine con una mappa dei colori grigia o con qualche altra mappa dei colori di tuo gusto. La mappa dovrebbe essere graduale, in modo che l'ordine dei numeri corrisponda a un ordine visivamente evidente dei colori. I casi di test seguenti mostrano alcune mappe dei colori di esempio.
La sfida
Dato un numero intero positivo dispari N , produce l'immagine sopra descritta.
Regole
La spirale deve essere esterna, ma può essere in senso orario o antiorario e può iniziare a muoversi a destra (come nell'esempio sopra), a sinistra, in basso o in alto.
Le scale degli assi orizzontale e verticale non devono necessariamente essere le stesse. Anche le etichette degli assi, la barra dei colori e elementi simili sono opzionali. Finché la spirale può essere vista chiaramente, l'immagine è valida.
Le immagini possono essere emesse con qualsiasi mezzo standard . In particolare, l'immagine può essere visualizzata sullo schermo, oppure può essere prodotto un file grafico o può essere emessa una matrice di valori RGB. Se si genera un file o un array, si prega di pubblicare un esempio di come appare quando viene visualizzato.
I mezzi di input e il formato sono flessibili come al solito . È possibile fornire un programma o una funzione . Sono vietate le scappatoie standard .
Vince il codice più breve in byte.
Casi test
Le seguenti immagini (clicca per la risoluzione completa) corrispondono a diversi valori di N . Viene utilizzata una prima spirale verso destra, in senso orario, come nell'esempio sopra. Le immagini illustrano anche diverse mappe dei colori valide.
imshowfa
imshowfa.








s(n)può essere inserito in qualche funzione / pacchetto di stampa senza essere modificato (penso cheimshowin matplotlib potrebbe gestirlo ad esempio) è questo un modulo di output accettabile?