fn main() {
// Define the total sum of the Pythagorean triplet (a + b + c = 1000)
let sum = 1000;
// Loop through possible values for 'a'
// We only check up to sum/3 because 'a' must be the smallest in the triplet
for a in 1..=(sum / 3) {
// Loop through possible values for 'b', starting just above 'a'
// It goes only up to sum/2 to avoid redundancy and ensure 'b < c'
for b in (a + 1)..=(sum / 2) {
// Calculate 'c' as the remaining value so that a + b + c = sum
let c = sum - a - b;
// Check if the triplet (a, b, c) satisfies the Pythagorean condition
// That is, a² + b² must equal c²
if a * a + b * b == c * c {
println!("({}^2 = {}) + ({}^2 = {}) = {}^2 = {}", a, a*a, b, b*b, c, c*c);
println!("a = {a}, b = {b}, c = {c}");
println!("{} + {} + {} = {}", a, b, c, a + b + c);
}
}
}
}
/*
run:
(200^2 = 40000) + (375^2 = 140625) = 425^2 = 180625
a = 200, b = 375, c = 425
200 + 375 + 425 = 1000
*/