Funzione per generare numeri primi fino a un certo limite

genera_numeri_primi <- function(limite) { # Creare un vettore di booleani per tenere traccia dei numeri primi numeri_primi <- rep(TRUE, limite)

0 e 1 non sono numeri primi, quindi li impostiamo a FALSE

numeri_primi[1] <- FALSE numeri_primi[2] <- TRUE

Crivello di Eratostene ottimizzato

for (i in 2:floor(sqrt(limite))) { if (numeri_primi[i]) { # Saltare multipli di numeri già contrassegnati come non primi numeri_primi[i^2:limite:i] <- FALSE } }

Restituire i numeri primi

return(which(numeri_primi)) }

Chiedere all’utente il limite

limite <- as.integer(readline(“Inserisci il limite per generare numeri primi:”))

Generare e stampare i numeri primi fino al limite

primi <- genera_numeri_primi(limite) cat(“Numeri primi fino a”, limite, “sono:”, primi, “”)