summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xgcd.r28
1 files changed, 28 insertions, 0 deletions
diff --git a/gcd.r b/gcd.r
new file mode 100755
index 0000000..d4e11f9
--- /dev/null
+++ b/gcd.r
@@ -0,0 +1,28 @@
+#!/usr/bin/env Rscript
+
+# R - https://www.r-project.org/
+#
+# Usage:
+# ./gcd.r 11 22 33 121
+# [1] 11
+#
+# Or:
+# Rscript ./gcd.r 11 22 33 121
+# [1] 11
+#
+
+gcd <- function (a, b) {
+ if (b == 0) {
+ a
+ } else {
+ gcd(b, a %% b)
+ }
+}
+
+gcdn <- function(ns) {
+ Reduce(gcd, ns)
+}
+
+args <- commandArgs(trailingOnly=TRUE)
+ns <- mapply(as.integer, args)
+gcdn(ns)