我正在尝试使用 R(以及迭代器和foreach包)解决以下(Project Euler)问题,
能被 1 到 15 的所有数整除的最小正数是多少?
虽然我认为我的代码应该完成这项工作,但它似乎并没有:
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
。