הגדרה: נאמר שהמספר השלם a מחלק את המספר השלם b, אם כשמחלקים את b ב-a אין שארית. כלומר, b % a == 0.
כאשר אחד מהמספרים (או שניהם) שליליים, אנחנו אומרים ש-a הוא מחלק של b אם הערך המוחלט של a הוא מחלק של הערך המוחלט של b.
בהינתן מערך חד-ממדי arr המכיל מספרים שלמים חיוביים ושליליים (ללא אפסים). יש לבדוק אם אחד מהערכים במערך מחלק את כל שאר הערכים במערך. אם כן, יש להחזיר את הערך הזה, אם לא, יוחזר -1.
אם יש יותר מערך אחד כזה במערך, יוחזר הראשון מהם במערך.
השיטה צריכה להיות יעילה ככל הניתן, גם מבחינת סיבוכיות הזמן וגם מבחינת סיבוכיות המקום.
למרות ש-1 ו-1- מחלקים את כל המספרים, לא נתייחס אליהם כאל מחלקים.
arr = [60, -100, 10, 5, -20, 25]
5
הסבר: הערך 5 מחלק את כל שאר האיברים במערך
arr = [-100, -10, 30, 3, 5, -20, 25]
-1
הסבר: אין במערך אף איבר שמחלק את כל שאר האיברים שבמערך
arr = [2, 4, 6, 8, 10]
2
הסבר: המספר 2 מחלק את כל המספרים במערך
arr = [3, -6, 9, -12, 15]
3
הסבר: המספר 3 מחלק את כל המספרים במערך, כולל המספרים השליליים
arr = [-100, 5, 20]
5
הסבר: המספר 5 מחלק את כל המספרים במערך
arr = [4]
4
הסבר: במערך של איבר בודד, האיבר מוחזר כל עוד הוא לא 1 או -1
arr = [-5, 5, 25]
-5
הסבר: המספר -5 מחלק את כל המספרים במערך בערכם המוחלט
arr = [1, 2, 4]
-1
הסבר: אין מספר במערך שמחלק את כל שאר המספרים
קלט:
arr = [60, -100, 10, 5, -20, 25]
הפלט המבוקש:
5