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, “”)