diff --git a/src/main/scala/ninetyNineScalaProblems/Problem28.scala b/src/main/scala/ninetyNineScalaProblems/Problem28.scala deleted file mode 100644 index 62fa0e8..0000000 --- a/src/main/scala/ninetyNineScalaProblems/Problem28.scala +++ /dev/null @@ -1,7 +0,0 @@ -package ninetyNineScalaProblems.lists - -import scala.annotation.tailrec - -object Problem28: - def lsort(list: List[List[Any]]): List[Any] = - list.sortWith((a, b) => a.length < b.length) \ No newline at end of file diff --git a/src/main/scala/ninetyNineScalaProblems/arithmetic/Problem31.scala b/src/main/scala/ninetyNineScalaProblems/arithmetic/Problem31.scala new file mode 100644 index 0000000..613cc88 --- /dev/null +++ b/src/main/scala/ninetyNineScalaProblems/arithmetic/Problem31.scala @@ -0,0 +1,21 @@ +package ninetyNineScalaProblems.arithmetic + +import scala.annotation.tailrec +import scala.math.sqrt + +object Problem31: + def isPrime(int: Int): Boolean = + @tailrec + def loop(cursor: Int): Boolean = + cursor match + case c if c >= sqrt(int).toInt + 1 => + true + case c if int % c == 0 => + false + case _ => + loop(cursor + 1) + int match + case int if int < 2 => + false + case _ => + loop(2) \ No newline at end of file diff --git a/src/test/scala/ninetyNineScalaProblems/Problem28Suite.scala b/src/test/scala/ninetyNineScalaProblems/Problem28Suite.scala deleted file mode 100644 index 1bf47df..0000000 --- a/src/test/scala/ninetyNineScalaProblems/Problem28Suite.scala +++ /dev/null @@ -1,15 +0,0 @@ -package ninetyNineScalaProblems.lists - -class Problem28Suite extends munit.FunSuite: - List( - (List(List(1, 2), List(1, 2, 3, 4), List(1, 2, 3)), List(List(1, 2), List(1, 2, 3), List(1, 2, 3, 4))), - (List(List(1, 2), List(1, 2, 3), List(1, 2, 3, 4)), List(List(1, 2), List(1, 2, 3), List(1, 2, 3, 4))), - (List(), List()), - (List(List(1)), List(List(1))), - (List(List(1), List(1)), List(List(1), List(1))), - (List(List(1, 2, 3), List(4, 5), List(6, 7, 8), List(4, 5), List(9, 10, 11, 12), List(13, 14), List(15)), - List(List(15), List(4, 5), List(4, 5), List(13, 14), List(1, 2, 3), List(6, 7, 8), List(9, 10, 11, 12))), - ).foreach: - case (list, expected) => - test(s"lsort returns [$expected]"): - assertEquals(Problem28.lsort(list), expected) \ No newline at end of file diff --git a/src/test/scala/ninetyNineScalaProblems/arithmetic/Problem31Suite.scala b/src/test/scala/ninetyNineScalaProblems/arithmetic/Problem31Suite.scala new file mode 100644 index 0000000..886376d --- /dev/null +++ b/src/test/scala/ninetyNineScalaProblems/arithmetic/Problem31Suite.scala @@ -0,0 +1,16 @@ +package ninetyNineScalaProblems.arithmetic + +class Problem31Suite extends munit.FunSuite: + List( + (1, false), + (0, false), + (-1, false), + (2, true), + (3, true), + (4, false), + (5, true), + (71, true), + ).foreach: + case (int, expected) => + test(s"isPrime returns [$expected]"): + assertEquals(Problem31.isPrime(int), expected) \ No newline at end of file