תרגול מדעי המחשב

מספר משוכלל

בינוני Java

המשימה

מספר משוכלל הוא מספר ששווה לסכום מחלקיו (חוץ מעצמו).
למשל 6 = 1+2+3, ולכן 6 משוכלל.

כתוב **שתי** פעולות:
  1. sumOfDivisors(n) — מחזירה את סכום המחלקים של n, לא כולל n עצמו.
  2. isPerfect(n) — משתמשת בראשונה ומחזירה true אם n משוכלל.

דוגמאות:
  6   →  true
  28  →  true
  12  →  false

הנחיות:
• הפעולה השנייה חייבת לקרוא לראשונה. זו מטרת התרגיל — פירוק לתת-בעיות.

```ds:table
{"title":"איך זה נראה","rows":[["n","המחלקים בלי n","סכומם","משוכלל?"],["6","1 · 2 · 3","6","כן"],["12","1 · 2 · 3 · 4 · 6","16","לא"],["28","1 · 2 · 4 · 7 · 14","28","כן"],["1","אין","0","לא"]]}
```

קוד הפתיחה

public class Main {

    public static int sumOfDivisors(int n) {
        // כתוב את הפתרון כאן
        return 0;
    }

    public static boolean isPerfect(int n) {
        // השתמש ב-sumOfDivisors
        return false;
    }

    public static void main(String[] args) {
        System.out.println(sumOfDivisors(6));   // 6
        System.out.println(sumOfDivisors(12));  // 16
        System.out.println(isPerfect(6));       // true
        System.out.println(isPerfect(28));      // true
        System.out.println(isPerfect(12));      // false
    }
}

כדי לכתוב, להריץ ולקבל משוב — התחבר עם חשבון Google. לוקח שנייה.

התרגיל הבא מחלק משותף מקסימלי
המשוב נוצר על ידי AI ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון — כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות בדיקה חיצוני.