How to check if an array contains the Pythagorean triplet numbers (a*a+b*b=c*c) in TypeScript

2 Answers

0 votes
function containsPythagoreanTripletNumbers(arr: number[]): boolean {
    const size: number = arr.length;

    for (let i: number = 0; i < size; i++) {
        for (let j: number = i + 1; j < size; j++) {
            for (let k: number = j + 1; k < size; k++) {
                let a: number = arr[i] * arr[i];
                let b: number = arr[j] * arr[j];
                let c: number = arr[k] * arr[k];

                if (a === b + c || b === a + c || c === a + b) {
                    return true;
                }
            }
        }
    }

    return false;
}

const arr: number[] = [4, 7, 3, 1, 5]; // 3*3 + 4*4 = 5*5 // 9 + 16 = 25

let r: string = containsPythagoreanTripletNumbers(arr) ? "Yes" : "No";

console.log(r);

 
 
/*
run:
 
"Yes" 
 
*/

 



answered Mar 12, 2025 by avibootz
0 votes
function containsPythagoreanTriplets(arr: number[]): boolean {
    arr.sort((a, b) => a - b); // Sort the array in ascending order

    const n: number = arr.length;

    // Iterate through the array to find triplets
    for (let i: number = 0; i < n - 5; i += 2) {
        for (let j: number = i + 2; j < n - 3; j += 2) {
            for (let k: number = j + 2; k < n - 1; k += 2) {
                const a: number = arr[i];
                const b: number = arr[j];
                const c: number = arr[k];
                if (
                    a === arr[i + 1] && 
                    b === arr[j + 1] && 
                    c === arr[k + 1] && 
                    (a * a + b * b === c * c)
                ) {
                    return true;
                }
            }
        }
    }

    return false;
}

const array: number[] = [3, 3, 4, 4, 5, 5]; // 3*3 + 4*4 = 5*5 // 9 + 16 = 25

if (containsPythagoreanTriplets(array)) {
    console.log("Yes");
} else {
    console.log("No");
}

 
 
/*
run:
 
"Yes" 
 
*/

 



answered Mar 12, 2025 by avibootz
...