Sha256: 55f9966875243c4a14acedde3f0da90bfea043c610b697d79de4992ab52efda0

Contents?: true

Size: 757 Bytes

Versions: 158

Compression:

Stored size: 757 Bytes

Contents

number_type <- function(n){
  
  # catch invalid input
  if (n <= 0)
    stop("Classification is only possible for natural numbers.")
  
  # catch edge cases
  if (n %in% c(1, 2))
    return("deficient")
  
  find_factors <- function(n) {
    factors <- c()
    for (i in 2:floor(n ^ 0.5 + 1)) {
      
      if (n %% i == 0) {
        if (i ^ 2 != n) {
          factors <- c(factors, i, n / i)
        }
        else {
          factors <- c(factors, i)
        }
      }
            
    }
    unique(factors)
  }
  
  sum <- sum(find_factors(n)) + 1
  
  if (sum == n)
    return("perfect")
  else-if (sum > n)
    return("abundant")
  else-if (sum < n)
    return("deficient")
  
  # alternative to multiple if/else-if predicates: dplyr::case_when()
}

Version data entries

158 entries across 158 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/r/exercises/perfect-numbers/example.R
trackler-2.2.1.179 tracks/r/exercises/perfect-numbers/example.R
trackler-2.2.1.178 tracks/r/exercises/perfect-numbers/example.R
trackler-2.2.1.177 tracks/r/exercises/perfect-numbers/example.R
trackler-2.2.1.176 tracks/r/exercises/perfect-numbers/example.R
trackler-2.2.1.175 tracks/r/exercises/perfect-numbers/example.R
trackler-2.2.1.174 tracks/r/exercises/perfect-numbers/example.R
trackler-2.2.1.173 tracks/r/exercises/perfect-numbers/example.R
trackler-2.2.1.172 tracks/r/exercises/perfect-numbers/example.R
trackler-2.2.1.171 tracks/r/exercises/perfect-numbers/example.R
trackler-2.2.1.170 tracks/r/exercises/perfect-numbers/example.R
trackler-2.2.1.169 tracks/r/exercises/perfect-numbers/example.R
trackler-2.2.1.167 tracks/r/exercises/perfect-numbers/example.R
trackler-2.2.1.166 tracks/r/exercises/perfect-numbers/example.R
trackler-2.2.1.165 tracks/r/exercises/perfect-numbers/example.R
trackler-2.2.1.164 tracks/r/exercises/perfect-numbers/example.R
trackler-2.2.1.163 tracks/r/exercises/perfect-numbers/example.R
trackler-2.2.1.162 tracks/r/exercises/perfect-numbers/example.R
trackler-2.2.1.161 tracks/r/exercises/perfect-numbers/example.R
trackler-2.2.1.160 tracks/r/exercises/perfect-numbers/example.R