תכנות - שיעור 36
10/May/2006
מספר המחלקים של מספר
פתרנו את
תרגיל 5 של שעור 33.
ראינו שאם מספר
מחלק את המספר
או בניסוח מתמטי:
אז כל הראשוניים שבפרוק של
חייבים להופיע בפרוק של
והחזקות של הראשוניים שב-
חייבות להיות לא גדולות מאלה של החזקות של הראשוניים שב-
.
לדוגמא: נניח
אז המחלקים שלו חייבים להיות מהצורה
כאשר
ולכן
11
אפשרויות עבור a
ו
21
אפשרויות עבור b
ומכאן שיש
מחלקים. באופן דומה למספר
יש
מחלקים.
מלכות על לוח שחמט
המשכנו בבעיה שהוצגה
בשעור קודם.
עכשיו כשבעזרת התמורות אנו יודעים למצוא את כל הפתרונות
עבור צריחים, נוכל לסנן מתוכם פתרונות שיהיו טובים גם למלכות.
כדי לפסול פתרונות נצטרך לזהות האם שתי מלכות מאימות אחת על השניה.
לכן יש לדעת איך לבדוק אם שתי משבצות נמצאות על אלכסון אחד.
בדיקת אלכסונים
ישנם שני סוגי אלכסונים. אלכסון "/" מדרום מערב לצפון מזרח
ואלכסון
"\"
מדרום מזרח לצפון מערב.
לדוגמא המשבצת:
נמצאת על אלכסון אחד עם המשבצות:
ועל אלכסון שני עם המשבצות:
תרגילים
פתרונות לקודמים
צפו
או
הורידו
פתרון
לתרגיל 3 (התמורה הבאה) של שעור קודם.
חדשים
-
לסיים תרגילים קודמים.
-
כתבו פונקציה
same_diagonal_SW2NE(x0, y0, x1, y1)
שמקבלת 4 מספרים שמתארים שתי משבצות
ומחזירה
True
אם
המשבצות על אותו אלכסון
"/"
שעובר מדרום מערב לצפון מזרח,
ומחזירה
False
אם הן לא על אותו אלכסון שכזה.
-
כתבו פונקציה דומה
same_diagonal_SE2NW(x0, y0, x1, y1)
שבודקת עבור אלכסון
"\"
שעובר מדרום מזרח לצפון מערב.
חזרה לעמוד האם