bug in schoolmath

Neil Gunther has pointed out on his blog that the prime number decomposition R package schoolmath contains mistakes in the function primes, listing 1 as a prime number but also including decomposable numbers like 133 in its list of prime numbers:

> primes(100,140)
[1] 101 107 111 113 123 129 131 137
> primes(50,140)
[1]  51  53  59  61  67  71  73  79  83  89  97 101 103 107 109 113 127 131 133
[20] 137 139
> is.prim(primes(133)
[1] FALSE
> is.prim(primes(200,300))
[1] FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE
[13] TRUE TRUE TRUE TRUE TRUE TRUE
> sum(1-is.prim(primes(1,1000)))
[1] 10
> data(primlist)
> sum(1-is.prim(primlist[1:25000]))
[1] 3309

This is rather annoying and I hope it gets quickly fixed!

6 Responses to “bug in schoolmath”

  1. Bill Venables Says:

    The whole package is an egregious example of bad programming in R and the package should be withdrawn as a dangerous example, particularly as it is (apparently) intended for use in schools! One look at the code is enough to show you that.

    If you want a function to find prime numbers, there is the function primes() in the conf.design package. (This is admittedly an odd place to look for it, but I know it’s there because I wrote it…)

  2. [...] A simple challenge in Le Monde this week: find the group of four primes such that any sum of three terms in the group is prime and the overall sum is minimised. Here is a quick exploration by simulation, using the schoolmath package (with its imperfections): [...]

  3. Another bug is
    > primes(start=13,end=21)
    [1] 1 2 3 5 7 11 13 17 19
    i.e. start and end are not accounted for if smaller than 19

  4. [...] a function of the (still bugged!) schoolmath package. We thus have the [...]

  5. still not fixed :(

  6. [...] thought about this recently when reading Christian Robert’s blog pointing out a post about errors in the package `schoolmath’. This was actually reported on a blog post by Neil Gunther. The problem involves finding prime [...]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 670 other followers