1:20的最小倍数 - 我怎样才能让它更快?
问题描述:
我正试图找到可以1:20整除的最小数字。 我创建了一个功能,这是我所:1:20的最小倍数 - 我怎样才能让它更快?
smallestN<- function(a,b) {
i<- 1
repeat {
if (all(i%%a:b == 0)) {
break
} else {
i<-i+1
}
}
return(i)
}
它正常工作,非常适合小间隔,但它1:20需要很长的时间。 如何提高我的代码速度?
答
我想你是在Least Common Multiple之后。有几种方法来计算,而是开始你了,你可以看看numbers
包
library(numbers)
mLCM(1:20)
# [1] 232792560
将会有更快的实现,利用C/C++
,但对于1:20
情景,这是快。
谢谢!简单得多。 –
@ ana.la - 不客气。如果这回答您的问题,您可以/应该按下投票箭头下的“嘀嗒”以接受答案。 – SymbolixAU