25 lines
764 B
Scala
25 lines
764 B
Scala
object PythagoreanTriples extends App {
|
|
|
|
println(" Limit Primatives All")
|
|
|
|
for {e <- 2 to 7
|
|
limit = math.pow(10, e).longValue()
|
|
} {
|
|
var primCount, tripCount = 0
|
|
|
|
def parChild(a: BigInt, b: BigInt, c: BigInt): Unit = {
|
|
val perim = a + b + c
|
|
val (a2, b2, c2, c3) = (2 * a, 2 * b, 2 * c, 3 * c)
|
|
if (limit >= perim) {
|
|
primCount += 1
|
|
tripCount += (limit / perim).toInt
|
|
parChild(a - b2 + c2, a2 - b + c2, a2 - b2 + c3)
|
|
parChild(a + b2 + c2, a2 + b + c2, a2 + b2 + c3)
|
|
parChild(-a + b2 + c2, -a2 + b + c2, -a2 + b2 + c3)
|
|
}
|
|
}
|
|
|
|
parChild(BigInt(3), BigInt(4), BigInt(5))
|
|
println(f"a + b + c <= ${limit.toFloat}%3.1e $primCount%9d $tripCount%12d")
|
|
}
|
|
}
|