aboutsummaryrefslogtreecommitdiff
path: root/challenge-089
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2020-12-13 03:47:07 +0000
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2020-12-13 03:47:07 +0000
commit6deea165afb75860bfdf50e9495794271b77a6b5 (patch)
tree258b60f16d7918544dd2e2679f1d868ec61c1dd9 /challenge-089
parentbc0c0e1085d43f0b1a7fcde30b908051c76cef47 (diff)
downloadperlweeklychallenge-club-6deea165afb75860bfdf50e9495794271b77a6b5.tar.gz
perlweeklychallenge-club-6deea165afb75860bfdf50e9495794271b77a6b5.tar.bz2
perlweeklychallenge-club-6deea165afb75860bfdf50e9495794271b77a6b5.zip
- Added Scala solutions to week 89 by Laurent Rosenfeld.
Diffstat (limited to 'challenge-089')
-rw-r--r--challenge-089/laurent-rosenfeld/scala/ch-1.scala21
-rw-r--r--challenge-089/laurent-rosenfeld/scala/ch-2.scala38
2 files changed, 59 insertions, 0 deletions
diff --git a/challenge-089/laurent-rosenfeld/scala/ch-1.scala b/challenge-089/laurent-rosenfeld/scala/ch-1.scala
new file mode 100644
index 0000000000..500af82aac
--- /dev/null
+++ b/challenge-089/laurent-rosenfeld/scala/ch-1.scala
@@ -0,0 +1,21 @@
+object Main {
+ def main(args: Array[String]): Unit = {
+ val in: Int = if (args.size == 1) args(0).toInt else 10
+ var sum = 0
+ for (m <- 1 to in) {
+ for (n <- m + 1 to in) {
+ sum += gcd(m, n)
+ }
+ }
+ println(s"Sum of GCD to $in is $sum")
+ }
+ def gcd(a: Int, b: Int): Int = {
+ var (i, j) = (a, b)
+ while (j > 0) {
+ var t = i
+ i = j
+ j = t % j
+ }
+ return i
+ }
+}
diff --git a/challenge-089/laurent-rosenfeld/scala/ch-2.scala b/challenge-089/laurent-rosenfeld/scala/ch-2.scala
new file mode 100644
index 0000000000..a410591dba
--- /dev/null
+++ b/challenge-089/laurent-rosenfeld/scala/ch-2.scala
@@ -0,0 +1,38 @@
+import Array._
+object Main {
+ def main(args: Array[String]): Unit = {
+ var mat = range(1, 10)
+ var in = Array.empty[Int]
+ permute(in, mat)
+ }
+ def print_matrix(a: Array[Int]): Unit = {
+ println(s"[ ${a(0)} ${a(1)} ${a(2)} ]")
+ println(s"[ ${a(3)} ${a(4)} ${a(5)} ]")
+ println(s"[ ${a(6)} ${a(7)} ${a(8)} ]")
+ println(" ")
+ }
+ def permute(in: Array[Int], left: Array[Int]): Unit = {
+ val sum = 15
+ if (left.size == 0) {
+ if (
+ in.slice(0, 3).sum != sum ||
+ in.slice(3, 6).sum != sum ||
+ in.slice(6, 9).sum != sum ||
+ in(0) + in(3) + in(6) != sum ||
+ in(1) + in(4) + in(7) != sum ||
+ in(2) + in(5) + in(8) != sum ||
+ in(0) + in(4) + in(8) != sum ||
+ in(2) + in(4) + in(6) != sum
+ ) {
+ return
+ }
+ print_matrix(in)
+ return
+ }
+ for (candidate <- left) {
+ val values: Array[Int] = in.appended(candidate)
+ val newleft: Array[Int] = left.filter(_ != candidate)
+ permute(values, newleft)
+ }
+ }
+}