תרגיל – תוכנית למציאת מספרים ראשוניים בין 0 ל- 100

March 12, 2019

תרגיל – תוכנית למציאת מספרים ראשוניים בין 0 ל- 100

מספר ראשוני הוא מספר המתחלק רק בעצמו וב- 1 ונותן תוצאה שלימה ולא בשום מספר אחר.

 

for num in range (101):

    if num > 1:

       for i in range(2,num):

           if (num % i) == 0:

               break

       else:

           print(num)

>>>

2

3

5

7

11

13

17

19

23

29

*למען הקיצור כתבנו רק את עשרת המספרים הראשוניים שמצאנו באמצעות התוכנית.

הלולאה הראשונה רצה על המספרים מ – 0 עד 101 (לא כולל 101 אבל כן כולל את 100). היא מתחילה להדפיס החל מהמספר 2 באמצעות מסננת של פקודת if num>1, ולגבי מספרים הגדולים מ-1 יצרנו לולאה פנימית נוספת, שרצה על המספרים מ- 2 ועד למספר שנמצא בתור בלולאה הראשונה (בתוך המשתנה num) ומחלקת אותו בכל אחד מהמספרים הקטנים ממנו באמצעות הלולאה הפנימית (שם כל מספר הקטן מהמספר אותו אנו בודקים מסומנן ב – i) – כך למשל אם הגענו למספר 5, הלולאה הפנימית מחלקת אותו במספרים 2,3 ו- 4 זאת משום ש- (range(2,5 לא כולל את המספר 5, ובודקת האם התוצאה של חלוקת המספר 5 בכל אחד מהמספרים שלפניו (2,3,4) היא בעלת שארית 0 – כאשר שארית 0 אומרת לנו שהמספר מתחלק באופן שלם במספר אחר שהוא לא עצמו או 1 ולכן אינו ראשוני – במקרה כזה ההוראה היא break והלולאה הפנימית נשברת ולא ממשיכה לרוץ ולא מגיעה לפקודה. (print(num אם המספר הוא ראשוני, הוא צולח את חלוקת המספרים הקטנים ממנו (חוץ מ- 1) כאשר תמיד נותרת שארית הגדולה מ- 0, ולכן פקודת break לא יוצאת לפועל, והוא מודפס בשלום.

Please reload

Please reload

רעננו את הדף והקליקו למעבר לנושא הבא: