问题描述
如何在 R 中找到 (1:n) 数字列表的 GCD?
Toolbar
这是我为两个整数查找 GCD 的代码,如何修改它以查找从 1 到 n 的数字列表的 GCD,而不会对我的原始代码进行太多更改? 非常感谢!
解决方法
您可以使用 any
函数:
GCD <- function(x) {
m = min(x)
while (any(x %% m > 0)){
m = m - 1
}
return(m)
}
GCD(c(12,24,28,36,200))
# [1] 4
GCD(c(6,200))
# [1] 2
,
您可以像下面这样基于 gcd
定义函数 GCD
gcd <- function(...) Reduce(GCD,list(...))
你可以试试
> gcd(6,200)
[1] 2