fun containsPythagoreanTriplet(arr: IntArray): Boolean {
val squares = arr.map { it * it }.sorted()
for (i in squares.size - 1 downTo 2) {
var a = 0
var b = i - 1
while (a < b) {
val sum = squares[a] + squares[b]
when {
sum == squares[i] -> return true
sum < squares[i] -> a++
else -> b--
}
}
}
return false
}
fun main() {
val input = intArrayOf(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.
*/