Github


What is a Prime Number?

A prime number is an integer in which two whole numbers cannot be multiplied to get that integer.

For example, 4 is not a prime number because 2x2 = 4. But, 5 is a prime number because no two same whole numbers can be multiplied in order to get 5.


‘ly’ Package

The Package that I have created contains the function ‘is.prime()’ where if you input an integer it will return a logical answer of either TRUE or FALSE.

library(ly)

is.prime(4)
## [1] FALSE
is.prime(5)
## [1] TRUE

As we can see here, the first command is.prime(4) returned a false statement because as stated before, 4 is not a prime number because two equal whole numbers can be multiplied together in order to get 4, but 5 does not.

If we were to use a data frame we could use this function to test if an observation is a prime number or not.

head(mtcars)
##                    mpg cyl disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
## Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1
is.prime(mtcars[1,3])
## [1] FALSE

The Mazda RX4 displacement or engine size of 160 is not a prime number.


How it Works

Taking a look at the script that provides the function, the function only contains an if else statement.

is.prime <- function(x) {
  if (x == 2) {
    TRUE
  } else if (any(x %% 2:(x-1) == 0)) {
    FALSE
  } else {
    TRUE
  }
}

If we were to get a number that is greater than 2 (1 is considered not a prime number), if that number can divide itself by 2 with both products equaling to each other but not also equal to 0 then the function will return TRUE, if not it will return FALSE.

is.prime <- function(x) {
  if (x == 2) {
    TRUE
  } else if (any(x %% 2:(x-1) == 0)) {
    FALSE
  } else {
    TRUE
  }
}

is.prime(574389)
## [1] FALSE