Menu
CoddyTech

Perfect Number

מחלק ראוי של n הוא מחלק חיובי שקטן מ־n עצמו. מספר מושלם שווה לסכום המחלקים הראויים שלו: 6 = 1 + 2 + 3. נתון לך מספר שלם חיובי n. החזר true אם n מושלם, ו־false אחרת.

פונקציה

isPerfect(n: integer) → boolean
ninteger
המספר השלם החיובי לבדיקה
מחזירהboolean
true אם n שווה לסכום המחלקים האמיתיים שלו, אחרת false

אילוצים

  • 1 ≤ n ≤ 108

דוגמאות

קלט
n = 28
פלט
true
הסבר
המחלקים הראויים של 28 הם 1, 2, 4, 7 ו־14. סכומם הוא 28, ולכן 28 הוא מספר מושלם.

lock icon+16 בדיקות נסתרות בשליחה

challenge icon

שאלת המשך

לכל מספר מושלם זוגי יש את הצורה 2^(p-1) × (2^p-1) כאשר 2^p-1 הוא ראשוני. האם תוכל לרשום את כל המספרים המושלמים הקטנים מ־10^8 באמצעות הנוסחה הזאת, בלי לבדוק כל מספר?

איפוס הקוד
def isPerfect(n):
    # כתבו כאן קוד
מקרי בדיקה

מקרה 1

מקרה 2

מקרה 3

קלט

n = 28

צפוי

true