// 07_NestedLoops.java - לולאות מקוננות

public class NestedLoops {
    public static void main(String[] args) {
        // לוח הכפל
        System.out.println("--- לוח הכפל ---");
        for (int i = 1; i <= 5; i++) {
            for (int j = 1; j <= 5; j++) {
                System.out.printf("%4d", i * j);
            }
            System.out.println();
        }

        // משולש של כוכביות
        System.out.println("\n--- משולש ---");
        int height = 5;
        for (int i = 1; i <= height; i++) {
            for (int j = 0; j < i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }

        // משולש הפוך
        System.out.println("\n--- משולש הפוך ---");
        for (int i = height; i >= 1; i--) {
            for (int j = 0; j < i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }

        // משולש ממורכז
        System.out.println("\n--- משולש ממורכז ---");
        for (int i = 1; i <= height; i++) {
            // רווחים
            for (int s = 0; s < height - i; s++) {
                System.out.print(" ");
            }
            // כוכביות
            for (int star = 0; star < 2 * i - 1; star++) {
                System.out.print("*");
            }
            System.out.println();
        }

        // ריבוע מלא
        System.out.println("\n--- ריבוע ---");
        int size = 4;
        for (int i = 0; i < size; i++) {
            for (int j = 0; j < size; j++) {
                System.out.print("# ");
            }
            System.out.println();
        }

        // מציאת מספרים ראשוניים
        System.out.println("\n--- מספרים ראשוניים עד 30 ---");
        for (int num = 2; num <= 30; num++) {
            boolean isPrime = true;
            for (int i = 2; i * i <= num; i++) {
                if (num % i == 0) {
                    isPrime = false;
                    break;
                }
            }
            if (isPrime) {
                System.out.print(num + " ");
            }
        }
        System.out.println();

        // break עם תווית
        System.out.println("\n--- break עם label ---");
        outer:
        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 5; j++) {
                if (i + j > 5) break outer;
                System.out.println(i + "," + j);
            }
        }
    }
}
