In aritmetica, un numero n-liscio , dove n è un dato numero primo, è matematicamente definito come un numero intero positivo che non ha fattori primi maggiori di n. Ad esempio, 42 è 7-smooth perché tutti i suoi fattori primi sono inferiori o uguali a 7, ma 44 non è 7-smooth perché ha anche 11 come fattore primo.
Definisci un numero abbastanza regolare come numero senza fattori primi maggiori della sua radice quadrata. Pertanto, l'elenco di numeri abbastanza fluidi può essere formulato come segue:
- (EDITED!) 1 è un numero abbastanza regolare, a causa della sua completa mancanza di fattori primi. (Si noti che nella versione originale di questa domanda, 1 è stato erroneamente escluso dall'elenco, quindi se lo si esclude dalle uscite non si verrà contrassegnati come errati.)
- Tra 4 (= 2 2 ) e 8, i numeri abbastanza uniformi sono 2-smooth, il che significa che hanno 2 come unico fattore primo.
- Tra 9 (= 3 2 ) e 24, i numeri abbastanza uniformi sono 3-smooth e possono avere 2s e 3s nelle loro prime fattorizzazioni.
- Tra 25 (= 5 2 ) e 48, i numeri abbastanza uniformi sono 5-smooth e possono avere 2s, 3s e 5s nelle loro prime fattorizzazioni.
- E così via, aggiornando i criteri ogni volta che viene raggiunto il quadrato del numero primo successivo.
L'elenco dei numeri abbastanza fluidi è fisso e inizia come segue: 1, 4, 8, 9, 12, 16, 18, 24, 25, ...
La tua sfida è quella di scrivere codice che produrrà tutti i numeri abbastanza fluidi fino a 10.000 inclusi (= 100 2 ). Ci deve essere almeno un separatore (non importa di che tipo - spazio, virgola, newline, qualsiasi cosa) tra ciascun numero nell'elenco e quello successivo, ma è del tutto irrilevante quale carattere viene utilizzato.
Come al solito, vince il conteggio di byte più basso - ovviamente, semplicemente generare l'elenco non sarà troppo utile per te qui. In bocca al lupo!
1
)