Prime Number in R Language (CloudStat)

November 28, 2011
By

[This article was first published on CloudStat, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

A prime number (or a prime) is a natural number greater than 1 that has no positive divisors other than 1 and itself.

R Language Code

The Prime Function

prime = function(n)
{
   n = as.integer(n)
   if(n > 1e8) stop(“n too large”)
   primes = rep(TRUE, n)
   primes[1] = FALSE
   last.prime = 2L
   fsqr = floor(sqrt(n))
   while (last.prime <= fsqr)
   {
      primes[seq.int(2L*last.prime, n, last.prime)] = FALSE
      sel = which(primes[(last.prime+1):(fsqr+1)])
      if(any(sel)){
        last.prime = last.prime + min(sel)
      }else last.prime = fsqr+1
   }
   which(primes)
}

To list out the primes within 100, simply type the command:

prime(100)

Now, question is

By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13.

What is the 10 001st prime number?

We simply accessing the elements of vector by using [ and ]

We first concatenate more than 10001 primes into prime2 variable by command prime(2000000). Then accessing the 10001st element of the vector and we get the 10001st prime number!

prime2 = prime(200000)
prime2[10001]

Result

Enjoy ^^

To leave a comment for the author, please follow the link and comment on their blog: CloudStat.

R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.



If you got this far, why not subscribe for updates from the site? Choose your flavor: e-mail, twitter, RSS, or facebook...

Tags: , , , , , ,

Comments are closed.

Search R-bloggers

Sponsors

Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)