Generate Prime Numbers Up to 1000 in R (Without Loops or Recursion)
Here's how to generate prime numbers up to 1000 in R without using a for or while loop, or a recursive function, using the Sieve of Eratosthenes algorithm:
# create a logical vector indicating whether each number is prime
is_prime <- rep(TRUE, 1000)
is_prime[1] <- FALSE # 1 is not prime
# loop over all numbers up to sqrt(1000)
i <- 2
while (i^2 <= 1000) {
# if i is prime, mark all its multiples as not prime
if (is_prime[i]) {
is_prime[i^2:1000:i] <- FALSE
}
i <- i + 1
}
# print the primes
which(is_prime)
This code utilizes a logical vector 'is_prime' of length 1000, initialized with all values as 'TRUE' (assuming initial primality). It iterates through numbers up to the square root of 1000, marking multiples of prime numbers as non-prime. Finally, the indices of remaining 'TRUE' values in 'is_prime' represent the prime numbers up to 1000.
原文地址: https://www.cveoy.top/t/topic/nBYs 著作权归作者所有。请勿转载和采集!