Numeri semiperfetti
Un numero semiperfect / pseudoperfect è un numero intero pari alla somma di una parte o di tutti i suoi divisori (escluso se stesso). I numeri che sono uguali alla somma di tutti i loro divisori sono perfetti.
Divisors of 6 : 1,2,3
6 = 1+2+3 -> semiperfect (perfect)
Divisors of 28 : 1,2,4,7,14
28 = 14+7+4+2+1 -> semiperfect (perfect)
Divisors of 40 : 1,2,4,5,8,10,20
40 = 1+4+5+10+20 or 2+8+10+20 -> semiperfect
Primitivo
Un numero semiperfect primitivo è un numero semiperfect senza divisori semiperfect (tranne se stesso :))
Divisors of 6 : 1,2,3
6 = 1+2+3 -> primitive
Divisors of 12 : 1,2,3,4,6
12 = 2+4+6 -> semiperfect
Come riferimento, utilizzare la serie OEIS A006036 per i numeri semiperfetti primitivi e A005835 per i semiperfetti.
Obbiettivo
Scrivi un programma o una funzione in qualsiasi lingua. Prenderà come input un numero n come parametro di funzione o da STDIN / l'alternativa più vicina alla tua lingua e produrrà tutti i numeri semi-perfetti primitivi da 1 a n (incluso).
L'output deve essere formattato come 6[separator]20[separator]28[separator]88...dove [separatore] è o come una nuova riga, uno spazio o una virgola. Non ci deve essere né un [separatore] iniziale né uno finale.
Modifica: puoi lasciare una nuova riga finale
Esempi
input:
5
produzione :
input:
20
produzione :
6
20
input:
100
produzione :
6 20 28 88
punteggio
Questo è code-golf, quindi vince il codice più breve in byte.
Per favore, non cercare di ingannarci con delle lacune :).
Sarei felice di poter lasciare una spiegazione del tuo codice golf una volta che pensi di aver finito di giocare a golf!
KaYper costruireY, che è necessaria altrove. Tuttavia, potrei eseguire la stampa separatamente, ad esempio conaYKKanzichéeaYK. Sono comunque 4 byte in entrambi i casi.