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

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

תרגיל – תוכנית למציאת מספרים ראשוניים בין 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 לא יוצאת לפועל, והוא מודפס בשלום.

Related Posts

See All

Floor division

Floor division הפעולה ההפוכה לפעולת המודולו (במובן מסוים) היא חילוק רצפה floor division (אם יש שם טוב יותר בעברית...) פעולה הנותנת לנו את...