Menu
CoddyTech

Square Root (Integer)

הפונקציה שלך מקבלת מספר שלם לא שלילי x ומחזירה את השורש הריבועי השלם שלו: המספר השלם הגדול ביותר r שעבורו r × r ≤ x. כלומר, השורש מעוגל כלפי מטה, כך שמספר שאינו ריבוע מושלם מקבל את השורש של הריבוע המושלם שמתחתיו. חשב אותו בעצמך, בלי להשתמש בפונקציית שורש ריבועי או חזקה מובנית.

פונקציה

mySqrt(x: integer) → integer
xinteger
המספר השלם הלא־שלילי שיש לחשב את השורש הריבועי שלו
מחזירהinteger
השורש הריבועי של x מעוגל כלפי מטה למספר שלם

אילוצים

  • 0 ≤ x ≤ 231 - 1
  • אין לקרוא לפונקציה מובנית לחישוב שורש ריבועי, חזקה או מעריך.

דוגמאות

קלט
x = 17
פלט
4
הסבר
4 × 4 = 16 הוא לכל היותר 17, אבל 5 × 5 = 25 גדול יותר, לכן השורש של 17 מעוגל כלפי מטה ל־4.

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

challenge icon

שאלת המשך

איך היית מוצא במקום זאת את השורש השלישי השלם, הערך הגדול ביותר של r שעבורו r × r × r ≤ x, אם x יכול להיות גם שלילי?

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

מקרה 1

מקרה 2

קלט

x = 17

צפוי

4