This question already has answers here:
Computation R program

(3个答案)


6年前关闭。




我正在尝试使用R(iterators以及foreach)解决以下(欧拉项目)问题,



虽然我认为自己的代码可以完成这项工作,但似乎并没有:
library(foreach)
library(iterators)

# function to check sequence of natural numbers for
#   divisibility by a given list of factors
fnDivision = function(maxNum, vFactors) {
  foreach(i = icount(factorial(15))) %do% {
    if(!i %% 100 ) cat(sprintf("Done with the first %i natural numbers.\n", i))
    if(all(! i %% vFactors)) {
      return(i)
    }
  }
}

# test the function
vFactors = c(8, 9, 10, 11, 12, 13, 14, 15)
fnDivision(15, vFactors)

请注意,我已经减少了测试自然数序列从1到15的所有自然数除以上面所得的因子的数量。

以防万一,正确的答案在A003418中给出,如360360所示,
all(! 360360 %% vFactors)

评估为TRUE

最佳答案

help.search("least common multiple")

library(gmp)
Reduce(lcm.bigz, 1:15)
# Big Integer ('bigz') :
# [1] 360360

10-05 18:51