/**
 * This function takes a list of star coordinates and returns the number of visible stars.
 * A star is visible if there is no other star between it and the origin, and it is not on a coordinate axis.
 *
 * @param starCoordinates List of star coordinates in the format (x, y, z)
 * @return Number of visible stars
 */
fun findVisibleStars(starCoordinates: List<Triple<Int, Int, Int>>): Int {

    var visibleStars = 0

    for (star in starCoordinates) {
        val (x, y, z) = star
        var visible = true

        for (otherStar in starCoordinates) {
            if (otherStar != star) {
                val (otherX, otherY, otherZ) = otherStar

                if ((otherX - x) * y == (otherY - y) * x && (otherY - y) * z == (otherZ - z) * y) {
                    visible = false
                    break
                }
            }
        }

        if (visible && x != 0 && y != 0 && z != 0) {
            visibleStars++
        }
    }

    return visibleStars
}
/**
 * This function takes a list of star coordinates and returns the number of visible stars.
 * A star is visible if there is no other star between it and the origin, and it is not on a coordinate axis.
 *
 * @param starCoordinates List of star coordinates in the format (x, y, z)
 * @return Number of visible stars
 */
fun findVisibleStars(starCoordinates: List<Triple<Int, Int, Int>>): Int {
/**
 * This function takes a list of star coordinates and returns the number of visible stars.
 * A star is visible if there is no other star between it and the origin, and it is not on a coordinate axis.
 *
 * @param starCoordinates List of star coordinates in the format (x, y, z)
 * @return Number of visible stars
 */
fun findVisibleStars(starCoordinates: List<Triple<Int, Int, Int>>): Int {

    var visibleStars = 0

    for (star in starCoordinates) {
        val (x, y, z) = star
        var visible = true

        for (otherStar in starCoordinates) {
            if (otherStar != star) {
                val (otherX, otherY, otherZ) = otherStar

                if ((otherX - x) * y == (otherY - y) * x && (otherY - y) * z == (otherZ - z) * y) {
                    visible = false
                    break
                }
            }
        }

        if (visible && x != 0 && y != 0 && z != 0) {
            visibleStars++
        }
    }

    return visibleStars
}