object PythagoreanTripletChecker {
def containsPythagoreanTriplet(arr: Array[Int]): Boolean = {
val squares = arr.map(x => x * x).sorted
for (i <- squares.length - 1 to 2 by -1) {
var a = 0
var b = i - 1
while (a < b) {
val sum = squares(a) + squares(b)
if (sum == squares(i)) return true
else if (sum < squares(i)) a += 1
else b -= 1
}
}
false
}
def main(args: Array[String]): Unit = {
val input = Array(4, 7, 3, 1, 5) // 3*3 + 4*4 = 5*5 // 9 + 16 = 25
if (containsPythagoreanTriplet(input))
println("The array contains a Pythagorean triplet.")
else
println("The array does not contain a Pythagorean triplet.")
}
}
/*
run:
The array contains a Pythagorean triplet.
*/