מציאת מחלק משותף

הגדרה: נאמר שהמספר השלם a מחלק את המספר השלם b, אם כשמחלקים את b ב-a אין שארית. כלומר, b % a == 0.

כאשר אחד מהמספרים (או שניהם) שליליים, אנחנו אומרים ש-a הוא מחלק של b אם הערך המוחלט של a הוא מחלק של הערך המוחלט של b.

בהינתן מערך חד-ממדי arr המכיל מספרים שלמים חיוביים ושליליים (ללא אפסים). יש לבדוק אם אחד מהערכים במערך מחלק את כל שאר הערכים במערך. אם כן, יש להחזיר את הערך הזה, אם לא, יוחזר -1.

אם יש יותר מערך אחד כזה במערך, יוחזר הראשון מהם במערך.

השיטה צריכה להיות יעילה ככל הניתן, גם מבחינת סיבוכיות הזמן וגם מבחינת סיבוכיות המקום.

אילוצים:

למרות ש-1 ו-1- מחלקים את כל המספרים, לא נתייחס אליהם כאל מחלקים.

דוגמה 1:
קלט:
arr = [60, -100, 10, 5, -20, 25]
פלט:
5

הסבר: הערך 5 מחלק את כל שאר האיברים במערך

דוגמה 2:
קלט:
arr = [-100, -10, 30, 3, 5, -20, 25]
פלט:
-1

הסבר: אין במערך אף איבר שמחלק את כל שאר האיברים שבמערך

דוגמה 3:
קלט:
arr = [2, 4, 6, 8, 10]
פלט:
2

הסבר: המספר 2 מחלק את כל המספרים במערך

דוגמה 4:
קלט:
arr = [3, -6, 9, -12, 15]
פלט:
3

הסבר: המספר 3 מחלק את כל המספרים במערך, כולל המספרים השליליים

דוגמה 5:
קלט:
arr = [-100, 5, 20]
פלט:
5

הסבר: המספר 5 מחלק את כל המספרים במערך

דוגמה 6:
קלט:
arr = [4]
פלט:
4

הסבר: במערך של איבר בודד, האיבר מוחזר כל עוד הוא לא 1 או -1

דוגמה 7:
קלט:
arr = [-5, 5, 25]
פלט:
-5

הסבר: המספר -5 מחלק את כל המספרים במערך בערכם המוחלט

דוגמה 8:
קלט:
arr = [1, 2, 4]
פלט:
-1

הסבר: אין מספר במערך שמחלק את כל שאר המספרים

Loading...
נשמרLn 1, Col 1

קלט:

arr = [60, -100, 10, 5, -20, 25]

הפלט המבוקש:

5